封面上的网站怎么做的,微信网页登录,成都网站设计报价,用户登录界面设计28. 找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle #xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标#xff08;下标从 0 开始#xff09;。如果 needle 不是 haystack 的一部分#xff0c;则返回 -1 。
class Solutio…28. 找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle 请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标下标从 0 开始。如果 needle 不是 haystack 的一部分则返回 -1 。
class Solution {
public:int strStr(string haystack, string needle) {if(needle.size()0){return 0;}int length1haystack.size();int length2needle.size();vectorint next(needle.size());//初始化next[0]0;int j0;//前缀的末尾位置,同时也是前后缀相同元素的个数int i1;//后缀的末尾位置for(int i1;ineedle.size();i){while(needle[j]!needle[i] j0){jnext[j-1];}if(needle[j]needle[i]){j;}next[i]j;}j0;for(int i0;ihaystack.size();i){while(j0 haystack[i]!needle[j]){jnext[j-1];}if(haystack[i]needle[j]){j;}if(jneedle.size()){return (i-needle.size()1);}}return -1;}
};