求KMP算法 基本思想
题目
求KMP算法 基本思想
答案
(1)求得模式串中每个字符的next[j]值;
(2)进行模式匹配.
假设i和j分别为指示主串和模式串中正在比较的字符的当前位置,并对i 和j 赋初值0.在匹配的过程中,若si=tj,则i和j分别增加1,继续进行比较,否则,i不变,而j退回到next[j]的位置进行新一轮的比较.如此递推下去,直到出现下列两种情况:
当j退回到某个值next[j]值时,匹配成功,则i和j分别增加1继续匹配;
当j退回到值为0时,即next[j]=0,说明主串的当前字符匹配失败,这时将主串向右滑动一个位置,即从i+1处重新开始新一轮的匹配,此时j=0.
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 太阳灶每平方米平均每分钟吸收太阳能84000J,若其效率为15%,则太阳灶的功率为多少瓦?
- 3x-2y+1=0和3x平方-y平方+2y=3方程式怎么解?
- H2O2 Na2O2电子式各是什么
- "语言"这个语词的含义是什么?和"语言"这个概念的内涵是什么?
- in the case of 除了以防万一
- 100千克黄豆可以榨油13千克,照这样计算,要榨豆油6.5吨,需黄豆多少吨?
- 某纯净物M为热能分解成NH3 H2O CO2 为什么得不出M中含有水的结论 为什么?
- 若x不等于y,两个数列:x,a1,a2,a3,y和x,b1,b2,b3,b4,y都是等差数列,求a2-a1/b4-b3的值
- 一物体做匀减速直线运动,初速度为12m/s,加速度为2m/s^2,该物体在某1s内的位移为6m,此后他还能
- 有一堆黑白棋子,黑棋粒数是白棋的2倍,每次从中取出白棋三粒黑棋五粒,白棋恰好取完时黑棋还剩20粒,求原来