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

63 阅读1分钟

🔗 leetcode.com/problems/ch…

题目

  • 一个字符串经过最多一次字符交换,返回是否可以等于第二个字符串

思路

  • 简单的字符串处理,统计或者哈希

代码

class Solution {
public:
    bool areAlmostEqual(string s1, string s2) {
        string swap1, swap2;
        for (int i = 0; i < s1.size(); i++) {
            if (s1[i] != s2[i]) {
                swap1 += s1[i];
                swap2 +=s2[i];
            }
        }
        if (swap1.empty()) return true;
        if (swap1.size() > 2) return false;
        if (swap1[0] != swap2[1]) return false;
        if (swap1[1] != swap2[0]) return false;
        return true;
    }
};