-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution.java
27 lines (26 loc) · 961 Bytes
/
Solution.java
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
class Solution {
public boolean buddyStrings(String A, String B) {
if (A.length() != B.length()) return false;
if (A.equals(B)) {
Map<Character, Boolean> characterMap = new HashMap<Character, Boolean>();
for (char c : A.toCharArray()) {
if (characterMap.get(c) == null) {
characterMap.put(c, true);
} else {
return true;
}
}
return false;
} else {
List<Character> diffs = new ArrayList<Character>();
for (int i = 0; i < A.length(); i++) {
if (A.charAt(i) != B.charAt(i)) {
diffs.add(A.charAt(i));
diffs.add(B.charAt(i));
}
}
if (diffs.size() == 4 && diffs.get(0) == diffs.get(3) && diffs.get(1) == diffs.get(2)) return true;
return false;
}
}
}