数据结构
叶落无痕0826
这个作者很懒,什么都没留下…
展开
-
字符串匹配的KMP算法
字符串匹配的KMP算法 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 1.首先,字符串"BBC ABCDABABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。 2. 因为B与A不匹配,搜索词转载 2014-10-08 14:38:08 · 561 阅读 · 0 评论 -
KMP算法Next数组计算
其实做这个题很简单,我先说说这个题里的各种概念。 给定的字符串叫做模式串T。j表示next函数的参数,其值是从1到n。而k则表示一种情况下的next函数值。p表示其中的某个字符,下标从1开始。看等式左右对应的字符是否相等。 好了,开始做题了。 首先,要把字符串填入到一个表格中:(拿第一个题为例) 将j导入next函数,即可求得, j=1时,next[0转载 2014-10-08 13:41:56 · 585 阅读 · 0 评论 -
KMP算法中next和nextval数组的求解
intget_nextval(SString T,int &nextval[ ]){ //求模式串T的next函数修正值并存入数组nextval。 i=1;nextval[1]=0; j=0; while(i if(j==0||T[i]==T[j]){ ++i;++j; if(T[i]!=T[j]) nextval[i]=j; elsenextval[i]=nextval[j];原创 2014-10-08 17:04:38 · 10917 阅读 · 2 评论