题目来自Leetcode
思路:字符串进行一个个字符匹配,用k继续下开始匹配的位置,如果匹配成功返回K,如果匹配失败J重新置0,i从k的下一个位置开始匹配,代码如下:
public static int strStr(String haystack, String needle) {
int i=0,j=0,k=i;
while(i<haystack.length()&&j<needle.length()){
if(haystack.charAt(i)==needle.charAt(j)){
++i;
++j;
}else{
j=0;
i=++k;
}
}
if(j==needle.length()){
return k;
}else{
return -1;
}
}
如果你有更好的解决方案,请加QQ群691761026交流