题目

解题代码
class Solution { public boolean buddyStrings(String s, String goal) { if(s.length() != goal.length() ) return false; Set<Character> set = new HashSet<>(); for(int i = 0; i < s.length(); i++ ) { set.add(s.charAt(i) ); } //1 <= s.length, goal.length <= 2 * 104 if(s.equals(goal) && s.length() != set.size() ) return true; int time = 0,first = 0, seconds = 0; for(int i = 0; i < s.length(); i++ ) { if(s.charAt(i) != goal.charAt(i)) { if(time == 2) return false; //出现三次以上不同字符,返回false if(time == 1) seconds = i; //第二次出现,记录位置 if(time == 0) first = i; //第一次不一样 time ++ ; } } if(time == 0) return false; if(s.charAt(first) == goal.charAt(seconds) && s.charAt(seconds) == goal.charAt(first) ) return true; return false; }}