字符串的匹配我们容易想到暴力解法。
即 两个数组指针 i,j 分别指向主串a和子串b,
当a[i]=b[j]时 i++ j++
当出现不匹配时 j=0 i回溯至起始位置+1
如果匹配过子字符串最后一位 j==s2.length()-1时
返回主串起始位置i
代码表示
class StringBF{
public int strStr(String s1,String s2){
int len1 = s1.length();
int len2 = s2.length();
for (int i = 0; i <= len1-len2; i++) {
//当i>len1-len2时,显然i后面的字符数量就不够匹配子字符串了
for (int j = 0; j < len2; j++) {
if (s2.charAt(j)!=s1.charAt(i+j)){
break;
}
if (j==len2-1 ){
return i;
}
}
}
return -1;
}
}