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));
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));
}
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;
}
}