枣庄学习建设网站培训,视频网站开发背景,网站更新维护 怎么做,做个网址多少钱28. 实现 strStr() #xff08;本题可以跳过#xff09;
方法#xff1a; 方法一#xff1a; 暴力法 i 表示最多能移动到n-m位置#xff0c; 超过则退出循环。j表示haystack 初始位置k表示needle的初始位置如果haystack [j] needle[k]且 km 则 j, k; 如果 km 则返…28. 实现 strStr() 本题可以跳过
方法 方法一 暴力法 i 表示最多能移动到n-m位置 超过则退出循环。j表示haystack 初始位置k表示needle的初始位置如果haystack [j] needle[k]且 km 则 j, k; 如果 km 则返回i;退出大循环 不满足 返回-1注意
代码
class Solution {
public:int strStr(string haystack, string needle) {int n haystack.size();int m needle.size();for(int i0; in-m; i){int j i;int k0;while(k m haystack[j] needle[k]){j;k;}if(km){return i;}}return -1;}
}; 方法 方法二 KMP算法 1. 构建next数组2. 匹配注意
代码
459.重复的子字符串 本题可以跳过
方法 方法一 技巧 将s累加起来 变成ss将ss去掉 首元素 与伪元素 若能在ss中找到 s 则 返回true 否则返回 false注意
代码
class Solution {
public:bool repeatedSubstringPattern(string s) {string ssss;ss.erase(ss.begin());ss.erase(ss.end()-1);if(ss.find(s) ! -1){return true;}return false;}
};