62,628
社区成员
发帖
与我相关
我的任务
分享
public static int strStr(String haystack, String needle) {
if(needle.isEmpty())
return 0;
int j = 0;
int i = 0;
int temp = -1;
for(; j < haystack.length(); j++){
//在提交的时候会提示数组越界,没想明白为什么???
if(haystack.charAt(j) != needle.charAt(i)){
i=0;
}
else{
i++;
//i如果是1,说明j是第一次相等出现的位置
if(i == 1)
temp = j;
}
}
//如果i走完了说明是有相等的元素的,则返回j第一次出现的位置
return (i == needle.length()) ? temp:-1;
}
else{
i++;
//i如果是1,说明j是第一次相等出现的位置
if(i == 1)
temp = j;
}
你这里else说明相等了呗,那就应该提前退出循环了呀,怎么还接着往下走,那可不越界了