161. One Edit Distance

distance = 1 表示改变一个字母使得2个字符串相等。改变可以是增加或者减少。。

分情况讨论。。

长度一样,长度相差1,长度相差大于1.。就这3种。。

public class Solution 
{
    public boolean isOneEditDistance(String s, String t) 
    {
        int diff = Math.abs(s.length() - t.length());
        if(diff >= 2) return false;
        
        if(diff == 1)
        {
            if(s.length() > t.length())
            {
                String temp = s;
                s = t;
                t = temp;
            }
            boolean already = false;
            for(int i = 0; i < s.length();i++)
            {
                if(s.charAt(i) == t.charAt(i)) continue;
                else
                {
                    if(already) return false;
                    already = true;
                    s = s.substring(0,i) + t.charAt(i) + s.substring(i);
                }
                
            }
            
            return true;
        }
        // 0
        else
        {
            boolean already = false;
            for(int i = 0; i < s.length();i++)
            {
                if(s.charAt(i) != t.charAt(i))
                {
                    if(already) return false;
                    already = true;
                }
            }
            return already;
        }
    }
}
原文地址:https://www.cnblogs.com/reboot329/p/5971942.html