题目描述:
思路:
1、比较长度是否相等
2、是否有两个字符不同,且交换以后,两个字符串相等
3、另一种两个字符串完全一样,但是字符串内有两个一样的字符
代码如下:
class Solution {
public:
bool buddyStrings(string A, string B) {
int cnt=0;
map<char,int>num;
vector<char>letter;
if(A.size()!=B.size()) return false;
for(int i=0;i<A.size();i++){
if(A[i]!=B[i]){
cnt++;
letter.push_back(A[i]);
letter.push_back(B[i]);
}
}
if(cnt==0){
for(int i=0;i<A.size();i++){
num[A[i]]++;
if(num[A[i]]>=2)
return true;
}
}
if(cnt==2){
if(letter[0]==letter[3]&&letter[1]==letter[2])
return true;
else return false;
}
return false;
}
};