字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
/*始终保持lena为最长串
2 要对字符串判空 null;
3 还要注意一个字符时的情况 eg b和""这种
4 默认返回true;
从头开始比较,不等时,判断如果串长相等,继续比较剩余部分;若串长不等,则以i+1起始比较
*/
class Solution {
public boolean oneEditAway(String first, String second) {
if(first==null||second==null)
return false;
int lena=first.length();
int lenb=second.length();
int num=0;
if(Math.abs(lena-lenb)>1){
return false;
}else{
if(first.length()==0||second.length()==0)
return true;
if(lenb>lena){
String temp=first;
first=second;
second=temp;
num=lena;
lena=lenb;
lenb=num;
}
for(int i=0;i<lenb;i++){
if(first.charAt(i)!=second.charAt(i)){
return first.substring(i + 1).equals(second.substring(lena == lenb ? i + 1 : i));
}
}
}
return true;
}
}