One Edit Distance
Total Accepted: 709 Total Submissions: 3097Given two strings S and T, determine if they are both one edit distance apart.
[分析]
delete, add, replace 三种都是 One edit distance. delete 和add 两个string长度差1, replace相同长度.
[注意]
None
[CODE]
public class Solution {
public boolean isOneEditDistance(String s, String t) {
if(s==null || t==null) return false;
if(Math.abs(s.length() - t.length())>1) {
return false;
}
if(s.length() == t.length()) {
int count = 0;
for(int i=0; i<s.length(); i++) {
if(s.charAt(i) != t.charAt(i)) ++count;
if(count > 1) return false;
}
return count==1;
} else {
String ss,ls;
if(s.length() < t.length() ) {
ss = s;
ls = t;
} else {
ss = t;
ls = s;
}
int i=0, j=0;
int count = 0;
while(i<ss.length() && j<ls.length()) {
if(ss.charAt(i) != ls.charAt(j) ) {
++count; ++j;
if(count > 1) return false;
} else {
++i; ++j;
}
}
return true;
}
}
}