2021-09-04发表2021-09-04更新模板 / 字符串几秒读完 (大约80个字)KMP简洁模板代码1234567891011121314151617181920int strStr(string haystack, string needle) { if(needle.size()==0) return 0; int* nxt = new int[needle.length()]; getNext(needle,nxt); for(int i=0,j=0;i<haystack.size();i++){ while(j>0&&haystack[i]!=needle[j]) j = nxt[j-1]; if(haystack[i]==needle[j]) j++; if(j==needle.size()) return i-j+1; } return -1;}void getNext(string pat,int* nxt){ int pLen = pat.length(); nxt[0] = 0; for(int i = 1,j = 0;i<pLen;i++){ while(j>0&&pat[i]!=pat[j]) j=nxt[j-1]; if(pat[i]==pat[j]) j++; nxt[i] = j; }} KMP简洁模板http://zhaoyewei.github.io/2021/09/04/KMP简洁模板/作者赵业伟发布于2021-09-04更新于2021-09-04许可协议#算法模板KMP