给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。
示例 1:
输入: A = "ab", B = "ba"
输出: true
示例 2:
输入: A = "ab", B = "ab"
输出: false
示例 3:
输入: A = "aa", B = "aa"
输出: true
示例 4:
输入: A = "aaaaaaabc", B = "aaaaaaacb"
输出: true
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/buddy-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public static boolean buddyStrings(String A, String B) {
if (A.length() != B.length()) {
return false;
}
if(A.equals(B)) {
for (int i = 0; i < A.length(); i++) {
if (A.indexOf(A.charAt(i), i + 1) != -1) {
return true;
}
}
return false;
}
ArrayList list = new ArrayList();
for (int i = 0; i < A.length(); i++) {
if (A.charAt(i) != B.charAt(i)) {
list.add(i);
}
}
if (list.size() == 2) {
boolean flag_0 = A.charAt((int) list.get(0)) == B.charAt((int) list.get(1));
boolean flag_1 = A.charAt((int) list.get(1)) == B.charAt((int) list.get(0));
if (flag_0 && flag_1) {
return true;
}
}
return false;
}