模板--字符串
努力过
喜欢coding
展开
-
【字符串】【KMP模板--最小循环节总结】
今天下午刚好看了一道最小循环节的题,感觉还是挺有意思的,不过自己还是看了一个下午才理解点,感觉自己好菜哎~~~kmp算法里的next数组还有一个性质就是m-next[m]是s2的最小循环节 稍微修改下next数组的定义,这里是修改前的定义链接,我们不再要求s2[j]和s2[k]不同,我们仅需要去掉if语句,直接令s2[j] = k;修改后代码如下void getNext() { int k原创 2017-08-08 18:10:37 · 1794 阅读 · 0 评论 -
【字符串】【扩展kmp模板】
#include char s1[1000],s2[1000]; int next[1000],ex[1000]; void exkmp(char s1[],char s2[],int ex[],int next[]) { int i,j,p; i = j = 0; p = -1; while(s1[i]!='\0') { if( p == -1) { j = 0;原创 2017-08-09 06:24:04 · 860 阅读 · 0 评论 -
【字符串】【kmp模板】
s1为匹配串,s2为模式串。kmp算法中的next数组称为失配指针,表示s1[i]和s2[j]匹配失败时,最有效率的方法是让s1[i]和s2[j]中的哪个元素进行匹配。 next数组有很多种定义方式,自己选了一种作为模板。 比如: a b c d a b c i == : 0 1 2 3 4 5 6 next:-1 0 0 0 0 1 2 当匹配到i=6,出现失配时,next数组回溯...原创 2017-08-08 11:22:37 · 2584 阅读 · 0 评论