题目
结果
运行结果:
代码如下:
class Solution {
public int strStr(String haystack, String needle) {
if(haystack==null||needle==null){
return -1;
}
if(needle.length()==haystack.length()&&needle.length()<=0){
return 0;
}
if(needle.length()>haystack.length()){
return -1;
}
for(int i = 0;i <haystack.length();i++){
if(haystack.length()-i < needle.length()){
break;
}
for(int j = 0, k=i;j <= needle.length();j++){
if(j==needle.length()){
return i;
}
char hay = haystack.charAt(k);
char need = needle.charAt(j);
if(hay!=need){
break;
}
k++;
}
}
return -1;
}
}
思路
这道题最好的使用KMP来去做,但是好久没有看这个了,忘掉怎么写了,所以用暴力法做的,后面会用KMP来做一下,暴力法很简单,就是haystack字符串每一个字符都加一个循环,判断后面的跟的字符是不是与needle相同,如果相同,返回地址,如果不相同,那么继续看haystack字符串的下一个字符。