Buddy Strings LeetCode solution in Java
1class Solution {2public boolean buddyStrings(String s, String goal) {3char a = '\u0000', b = '\u0000';4char c = '\u0000', d = '\u0000';5int lenS = s.length();6int lenGoal = goal.length();7boolean flag = true;8HashSet<Character> hset = new HashSet<>();910if (lenS != lenGoal) return false;1112if (s.equals(goal)) {13for (int i = 0; i < lenS; i++) {14if (!hset.contains(s.charAt(i))) {15hset.add(s.charAt(i));16} else return true;17}18return false;19} else {20for (int i = 0; i < lenS; i++) {21if (s.charAt(i) == goal.charAt(i)) {22continue;23}24if (a == '\u0000') {25a = s.charAt(i);26c = goal.charAt(i);27continue;28}29if (b == '\u0000') {30b = s.charAt(i);31d = goal.charAt(i);32continue;33}34return false;35}3637if (a == d && c == b && a != '\u0000') return true;3839return false;40}41}42}