class Solution {
public boolean buddyStrings(String s, String goal) {
int len1 = s.length(), len2 = goal.length();
if(len1 != len2) return false;
Set<Character> set = new HashSet<>();
for(int i = 0; i < len1; i++) set.add(s.charAt(i));
// 字符串相等的时候, 只要有重复的元素就返回true
if(s.equals(goal)) return set.size() != len1;
List<Character> list = new ArrayList<>();
for(int i = 0; i < len1; i++){
if(s.charAt(i) != goal.charAt(i)){
list.add(s.charAt(i));
list.add(goal.charAt(i));
}
// 两个不相等的地方直接返回false
if(list.size() > 4) return false;
}
// 字符串有不相等的两个地方, 需要查看它们交换后是否相等即可.
if(list.size() < 4) return false;
if(list.get(0) == list.get(3) && list.get(1) == list.get(2)){
return true;
}
return false;
}
}
859.亲密字符串。简单易懂0ms
最新推荐文章于 2024-10-20 09:49:14 发布