leetcode力扣刷题打卡
题目:面试题 01.02. 判定是否互为字符重排
描述:给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
解题思路
1、哈希;
2、字符串的好多题都可以用到哈希;
原代码##
class Solution {
public:
bool CheckPermutation(string s1, string s2) {
if (s1.size() != s2.size()) return false;
vector<int> v(26, 0);
for (int i = 0; i < s1.size(); ++i) {
v[s1[i] - 'a']++;
}
for (int j = 0; j < s2.size(); ++j) {
v[s2[j] - 'a']--;
}
for (int k = 0; k < s1.size(); ++k) {
if (v[s1[k] - 'a'] > 0) return false;
}
return true;
}
};