class Solution {
public boolean areAlmostEqual(String s1, String s2) {
if (s1.length() != s2.length()) return false;
int count = 0, m = -1, n = -1;
for (int i = 0, j = 0; i < s1.length(); i++, j++) {
if (s1.charAt(i) != s2.charAt(j)) {
count++;
if (m == -1) m = i;
if (n == -1 && m != i) n = i;
}
}
if (count == 0) return true;
// 有个字符不同,s1和s2对应的m和n对换下判断是否一致
if (count == 2 && s1.charAt(m) == s2.charAt(n) && s2.charAt(m) == s1.charAt(n))
return true;
return false;
}
}
1790.仅执行一次字符串交换能否使两个字符串相等
字符串相似性比较
本文介绍了一种用于判断两个字符串是否仅通过交换两个位置的字符变得相等的方法。该方法首先检查两个字符串长度是否相同,然后统计不同字符的位置,并判断是否可以通过一次交换使两字符串相等。

被折叠的 条评论
为什么被折叠?



