859. Buddy Strings - LeetCode
阿新 • • 發佈:2018-08-25
code script true diff http turn 記錄 () 思路
Question
859. Buddy Strings
Solution
題目大意:
兩個字符串,其中一個字符串任意兩個字符互換後與另一個字符串相等,只能互換一次
思路:
diff 記錄不同字符數
長度不同
abc abd 無重復且diff == 1 ca[3] != cb[3]
abc abc 無重復且diff > 2
aa aa aa重復
ab ba diff == 2
aabc aabc aa重復
aacb aabc diff == 2
Java實現:
public boolean buddyStrings(String A, String B) { if (A.length() != B.length()) return false; int[] ca = new int[26]; int[] cb = new int[26]; int diff = 0; for (int i = 0; i < A.length(); i++) { ca[A.charAt(i) - 'a']++; cb[B.charAt(i) - 'a']++; if (A.charAt(i) != B.charAt(i)) diff++; } for (int i = 0; i < ca.length; i++) { if (diff == 0 && ca[i] > 1) return true; if (ca[i] != cb[i]) return false; } return diff == 2; }
859. Buddy Strings - LeetCode