题解:
1.如果输入字符串s和goal长度不等,则返回False。
2.如果s和goal完全相同,因为需要交换一次,因此如果s中存在相同的字符则返回True。
3.如果s和goal恰好有两个位置i,j的字符不同,并且s[i]=goal[j] s[j]=goal[i]则为True。
其他情况都返f回False。
class Solution(object): def buddyStrings(self, s, goal): lens = len(s) lengoal = len(goal) if lens!=lengoal: return False sets = set(s) if s==goal and len(sets)<len(s): return True diff = [] for i in range(lens): if s[i]!=goal[i]: diff.append(i) if len(diff)==2 and s[diff[0]]==goal[diff[1]] and s[diff[1]]==goal[diff[0]]: return True return False