题目
- 一个字符串经过最多一次字符交换,返回是否可以等于第二个字符串
思路
- 简单的字符串处理,统计或者哈希
代码
class Solution {
public:
bool areAlmostEqual(string s1, string s2) {
string swap1, swap2;
for (int i = 0; i < s1.size(); i++) {
if (s1[i] != s2[i]) {
swap1 += s1[i];
swap2 +=s2[i];
}
}
if (swap1.empty()) return true;
if (swap1.size() > 2) return false;
if (swap1[0] != swap2[1]) return false;
if (swap1[1] != swap2[0]) return false;
return true;
}
};