1709.仅执行一次字符串交换能否使两个字符串相等

1709.仅执行一次字符串交换能否使两个字符串相等

class Solution {
    public boolean areAlmostEqual(String s1, String s2) {
        if (s1.equals(s2)) return true;

        int i1=-1,i2 = -1;
        for (int i = 0; i < s1.length(); i++) {
            System.out.println(s1.charAt(i) + " "+s2.charAt(i));
            if (s1.charAt(i) == s2.charAt(i)) continue;
            if (i1 == -1) {
                System.out.println(36);
                i1 = i;
                continue;
            };
            if (i2 == -1) {
                i2 = i;
                System.out.println(42);
                continue;
            };
            return false;
        }

        return i1 != -1 && i2 != -1 && s1.charAt(i1) == s2.charAt(i2)  && s1.charAt(i2) == s2.charAt(i1);
    }
}

留下回复