- One Edit Distance
https://leetcode.com/problems/one-edit-distance/description/
image.png
因为只有一步距离,所以2个字符串的长度差不会超过1.
下面再分长度相等和不等的情况,长度相等,一旦遇到一个不一样的字符了,那么剩余的字符串就该相等。
如果长度不一样,那么长的那个多走一步,剩余的字符应该一样。
public boolean isOneEditDistance(String s, String t) {
int l1 = s.length();
int l2 = t.length();
if(Math.abs(l1-l2)>1) return false;
int i = 0;
for(; i < Math.min(l1,l2); i++){
if(s.charAt(i) == t.charAt(i)) continue;
if(l1 == l2){
return s.substring(i+1).equals(t.substring(i+1));
}else if(l1 < l2){
return s.substring(i).equals(t.substring(i+1));
}else{
return s.substring(i+1).equals(t.substring(i));
}
}
return !s.equals(t);
}