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;
}
}
}