1790. 仅执行一次字符串交换能否使两个字符串相等
class Solution {
public boolean areAlmostEqual(String s1, String s2) {
if (s1.length() != s2.length())
return false;
int len = s1.length();
int count = 0;
char c1 = 'a';
char c2 = 'a';
for (int i = 0; i < len; i++) {
if (s1.charAt(i) == s2.charAt(i)) {
continue;
}
if (count == 0) {
c1 = s1.charAt(i);
c2 = s2.charAt(i);
} else if (count == 1) {
if (s1.charAt(i) != c2 || s2.charAt(i) != c1) {
return false;
}
} else {
return false;
}
++count;
}
return count != 1;
}
}