解决问题是字符串匹配子字符串问题
方法一 暴力字符串查找:
public static int search1(String target,String txt){
int tgL = target.length();
int txtL = txt.length();
for(int i = 0; i <= txtL-tgL; i++ ){
int j;
for(j = 0; j < tgL; j++){
if(txt.charAt(i+j) != target.charAt(j)){
break;
}
}
if (j == tgL){
return i;
}
}
return txtL;
}
方法二 暴力子字符串匹配(显示回退)
public static int search2(String target,String txt){
int j,tgL = target.length();
int i,txtL = txt.length();
for( i = 0,j = 0; i < txtL && j < tgL; i++ ){
if(txt.charAt(i) == target.charAt(j)){
j++;
}else {
i -=j;
j = 0;
}
}
if(j == tgL){
return i - tgL;
}
return txtL;
}
参考《算法》第四版