找出字符串中第一个匹配的下标
解题思路
- 双指针算法
- i 指针从前往后遍历主串,j 指针从前往后遍历字串
class Solution {
public:
int strStr(string haystack, string needle) {
bool flag = false;
int index=-1;
for(int i = 0;i<haystack.size();i++){
int temp = i;//记录第一次匹配的下标
for(int j = 0;j<needle.size();j++){
if(haystack[temp] != needle[j]) break;//如果说不相等,直接可以break
temp++;
if(temp-i == needle.size()){//说明字串已经遍历结束,找到了答案
flag = true;//已经找到答案,那么就不用遍历主串了
index = i;//记录第一次匹配的下标
}
}
if(flag) break;
}
return index;
}
};