找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。
一、双指针法:
class Solution {
public int strStr(String haystack, String needle) {
int h = 0;
int n =0;
if(haystack.length()==0){
return -1;
}
while(h < haystack.length()){
//如果相等,就都到下一位
if(haystack.charAt(h)==needle.charAt(n)){
h++;
n++;
//匹配串走到末尾,就证明与原串匹配上了
if(n==needle.length()){
return h-n;
}
//如果没匹配,原串返回起始点的下一位,匹配串返回起始点
}else{
h=h-n+1;
n=0;
}
}
return -1;
}
}