Given two strings A
and B
of lowercase letters, return true
if and only if we can swap two letters in A
so that the result equals B
.
Example 1:
1 2
|
Input: A = "ab", B = "ba" Output: true
|
Example 2:
1 2
|
Input: A = "ab", B = "ab" Output: false
|
Example 3:
1 2
|
Input: A = "aa", B = "aa" Output: true
|
Example 4:
1 2
|
Input: A = "aaaaaaabc", B = "aaaaaaacb" Output: true
|
Example 5:
1 2
|
Input: A = "", B = "aa" Output: false
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
class { public boolean buddyStrings(String A, String B) { int count = 0; if (A.length() != B.length() || A.length() < 2 || B.length() < 2) { return false; } if (A.equals(B)) { Map<Character, Integer> map = new HashMap<>(); for (int i = 0; i < A.length(); i++) { if (map.containsKey(A.charAt(i))) { return true; } else { map.put(A.charAt(i), 1); } } return false; } char a1 = ' '; char a2 = ' '; char b1 = ' '; char b2 = ' ';
for (int i = 0; i < A.length(); i++) { if (A.charAt(i) != B.charAt(i)) { count++; if (count == 1) { a1 = A.charAt(i); b1 = B.charAt(i); } else if (count == 2) { a2 = A.charAt(i); b2 = B.charAt(i); } if (count > 2) { return false; } } } if (count != 2) { return false; } return a1 == b2 && a2 == b1; } }
|
近期评论