One Edit Distance

如果有不同的char,如果两个长度相同,那么判断剩下的部分是否相等,如果不同,则判断短的当前字符和长的下一个字符开始的剩下部分是否相等

code


class Solution {
public:
    bool isOneEditDistance(string s, string t) {
        int m = s.length();
        int n = t.length();

        if(s == t || abs(m-n) > 1)
        {
            return false;
        }

        if(n > m)
        {
            return isOneEditDistance(t, s);
        }

        for(int i = 0; i<n; i++)
        {
            if(s[i] == t[i])
            {
                continue;
            }

            // s[i] != t[i]

            if(m != n)
            {
                if(s.substr(i+1) == t.substr(i))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }

            if(m == n)
            {
                if(s.substr(i+1) == t.substr(i+1))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

        return true;
    }
};

results matching ""

    No results matching ""