(1) s == t, return false;
(2) diff > 1 return false;
(3) 其中一个为"",另一个字符,为true;
(4) 其余的要做判断。
class Solution {
bool isEqual(string s,int i,string t,int j,int m,int n){
while(i<m && j<n) {
if(s[i] != t[j])
return false;
i++;
j++;
}
return true;
}
public:
bool isOneEditDistance(string s, string t) {
if(s == t) return false;
int diff = (s.size() > t.size())? (s.size()-t.size()):(t.size()-s.size());
if(diff > 1) return false;
int m = min(s.size(),t.size());
if(m == 0) return true;
for(int i=0;i<m;i++){
if(s[i] != t[i]) {
if(s.size() == t.size()) {
return isEqual(s,i+1,t,i+1,m,m);
} else {
if(s.size() > t.size()) {
return isEqual(s,i+1,t,i,s.size(),t.size());
} else
return isEqual(s,i,t,i+1,s.size(),t.size());
}
}
}
return true;
}
};