class Solution {
public:
bool buddyStrings(string A, string B) {
int sum[27]={0};
int len1=A.size();
int len2=B.size();
if(len1!=len2 || len1<2 || len2<2)
return false;
len2=0;
char a,b,c;
int count=1;
bool flag=false;
for(int i=0;i<len1;i++){
if(A[i]!=B[i]){
if(!flag){
a=A[i];
b=B[i];
flag=true;
}else{
if(a!=B[i] || b!=A[i] ||len2==1)
return false;
len2++;
}
}else{
if(count==1){
if(sum[A[i]-97]==1)
count++;
}
sum[A[i]-97]=1;
}
}
if(flag)
return true;
return count==2?true:false;
}
};
条件太多了,差点写得崩溃…