判定是否互为字符重排
题目描述
给定两个字符串 s1
和 s2
,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
输入:s1
= "abc",s2
= "bca" 输出: true
示例 2:
输入:s1
= "abc",s2
= "bad" 输出: false
说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
解法:
class Solution {
public:
bool CheckPermutation(string s1, string s2) {
if(s1.size() != s2.size()){
return false;
}
unordered_map<char,int> mp;
for(char ch: s1){
mp[ch] += 1;
}
for(char ch: s2){
mp[ch] -= 1;
if(mp[ch] == -1){
return false;
}
}
return true;
}
};