解题思路:扫描。。。时间复杂度O(N*M)。据说最好的算法是KMP算法,不过我还不会。。。
public class Solution {
public int strStr(String haystack, String needle) {
if(haystack.length() == 0 && needle.length() == 0) {
return 0;
}
if(haystack.length() < needle.length()) {
return -1;
}
int cur = 0;
int ind = 0;
while(ind != haystack.length()) {
if(cur < needle.length()) {
if(haystack.charAt(ind) == needle.charAt(cur)) {
cur ++;
ind ++;
}
else if(cur != 0){
ind = ind - cur + 1;
cur = 0;
}
else {
ind ++;
}
}
else {
break;
}
}
if(cur == needle.length()) {
return ind - cur;
}
else {
return -1;
}
}
}