![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
串
作业写不完的卑微小cookie
你连夜都不熬,那你熬什么,奥利给吗?
展开
-
数据结构——串、KMP算法相关练习题
1.在字符串模式匹配的KMP算法中,求模式的next数组值定义如下:(1)当j=1时,为什么要取next[1]=0?(2)为什么要取max{k},k最大是多少?(3)其他情况是什么情况,为什么取next[j]=1?解答:(1)当模式串中的第一个字符和珠串的当前字符比较不相等时,next[1]=0,表示模式串应该右移以为,主串当前指针也要后移以为,再和模式串中的第一字符进行比较(2)当主串的第i个字符与模式串的第j个字符失配时,主串i不回溯,则假定模式串的第k个字符与主串的第i个字符比较,k值应原创 2020-08-09 14:07:16 · 2133 阅读 · 0 评论 -
数据结构——KMP算法优化(改进next数组,用nextval数组)
KMP算法优化对KMP算法进行的优化,主要是在于对next数组进行的优化把优化后的数组命名为nextval[ ]首先我们先看KMP算法的相关代码:void get_next(String T,int next[]){ int i=1,j=0; next[1]=0; while(i<T.length){ if(j==0||T.ch[i]==T.ch[j]){ ++i;++j; //若pi=pj,则next[j+1]=next[j]+1 next[i]=j;原创 2020-08-09 12:36:45 · 1259 阅读 · 0 评论 -
简单模式匹配算法的优化——KMP算法
KMP算法让我们先看看简单模式匹配算法的代码简单模式匹配算法//方案① int Index(String S,String T){ int i,j; int k=1; while(i<=S.length&&j<=T.length){ if(S.ch[i]==T.ch[j]){ i++; j++ } else{ i=k; j=1; k++; } } if(j>T.length){ return k; }原创 2020-08-09 11:40:32 · 620 阅读 · 0 评论 -
字符串朴素模式匹配算法(简单模式匹配算法)
字符串朴素模式匹配算法方案一://方案① int Index(String S,String T){ int i,j; int k=1; while(i<=S.length&&j<=T.length){ if(S.ch[i]==T.ch[j]){ i++; j++ } else{ i=k; j=1; k++; } } if(j>T.length){ return k; } else return 0;}原创 2020-08-08 19:41:45 · 4713 阅读 · 1 评论