【leetcode】28-实现strStr()【C++】

题目如下:
【leetcode】28-实现strStr()【C++】
文章图片

解题思路:
分别对两个字符串 haystack 和 needle 设置移动标签 i 和 j ,比较并顺序移动它们,当标签 j 第一次顺序移动至字符串 needle 的末尾时即找到第一个匹配的支付串。需要注意的时,当字符串部分匹配时需要回退字符串 haystack 的标签 i 。
代码如下:

class Solution { public: int strStr(string haystack, string needle) { int l1 = haystack.size(); int l2 = needle.size(); int i = 0, j= 0; while(i < l1 && j < l2){ if(haystack[i] == needle[j]){ i++; j++; } else{ i = i - j + 1; //回退,针对例如"mississippi"、"issip"的情况 j = 0; } } if(j >= l2) return (i - j); else return -1; } };

【leetcode】28-实现strStr()【C++】
文章图片

【【leetcode】28-实现strStr()【C++】】

    推荐阅读