KMP算法的next求解

题目:

        在字符串的KMP模式匹配算法中,需要求解模式串p的next函数值,其定义如下所示。若模式串p为"aaabaaa",则其next函数值为0123123

 解析:

        当j=1时    next[1]=0;

        当j=2时    找不到k    next[2]=1;

        当j=3时    k=2    p1=p2    a=a    next[3]=2;

        当j=4时    k=2,3

                        当k=2时    p1=p3    a=a    2成立;

                        当k=3时    p1p2=p2p3    aa=aa    3成立;

                        next[4]=3;

        当j=5时    k=2,3,4

                        当k=2时    p1!=p4    a!=b    2不成立;

                        当k=3时    p1p2!=p3p4    aa!=ab    3不成立;

                        当k=4时    p1p2p3!=p2p3p4    aaa!=aab    4不成立;

                        next[5]=1;

        当j=6时    k=2,3,4,5

                        当k=2时    p1=p5    a=a    2成立;

                        当k=3时    p1p2!=p4p5    aa!=ba    3不成立;

                        当k=4时    p1p2p3!=p3p4p5    aaa!=aba    4不成立;

                        当k=5时    p1p2p3p4!=p2p3p4p5    aaab!=aaba    5不成立;

                        next[6]=2;

        当j=7时    k=2,3,4,5,6

                        当k=2时    p1=p6    a=a    2成立;

                        当k=3时    p1p2=p5p6    aa=aa    3成立;

                        当k=4时    p1p2p3!=p4p5p6    aaa!=baa    4不成立;

                        当k=5时    p1p2p3p4!=p3p4p5p6    aaab!=abaa    5不成立;

                        当k=6时    p1p2p3p4p5!=p2p3p4p5p6    aaaba!=aabaa    6不成立;

                        next[7]=3;

        next的函数值为0123123。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值