记录两个字符串不同字符的个数,这将作为一个判断条件,但仅仅有这样一个还不能足以判断,还需要判断s1中的两个字符和s2中的两个字符是否对应,肯定是使用set。
class Solution {
private:
unordered_set<char> v1;
unordered_set<char> v2;
public:
bool areAlmostEqual(string s1, string s2) {
int len = s1.length();
int num = 0;
v1.clear();
v2.clear();
for(int i = 0; i < len; ++i){
if(s1[i] != s2[i]){
num++;
v1.insert(s1[i]);
v2.insert(s2[i]);
}
}
if((num == 2 && v1 == v2) || num == 0) return true;
return false;
}
};