Daily LeetCode – day0074 1790. Check if One String Swap Can Make Strings Equal

// 1790. Check if One String Swap Can Make Strings Equal
class Solution {
    public boolean areAlmostEqual(String s1, String s2) {
        int differences = 0;
        int first = -1;
        int second = -1;
        for (int i = 0; i < s1.length(); ++i) {
            if (s1.charAt(i) != s2.charAt(i)) {
                ++differences;
                if (differences > 2) {
                    return false;
                }
                if (differences == 2) {
                    second = i;
                } else {
                    first = i;
                }
            }
        }
        if (differences == 0) return true;
        if (differences == 1) return false;
        return s1.charAt(first) == s2.charAt(second) && s1.charAt(second) == s2.charAt(first);
    }
}
学习笔记:
这是一道简单题,字符串数组。
先找不同点,如果超过两个就不行,提前返回。
如果没有,就ok。如果有一个,就不行。
只有刚好两个,就需要进一步比较交换后是否可行。


关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注