开发者社区> 问答> 正文

kmp算法next(j)怎么算出来的?

kmp算法next(j)怎么算出来的?

展开
收起
知与谁同 2018-07-22 19:35:02 3486 0
2 条回答
写回答
取消 提交回答
  • 想帮你'但是我没上过大学''无能为力啊…
    2019-07-17 22:55:55
    赞同 展开评论 打赏
  • 静静的看着你们
    int first=-1,last=0;
    len=strlen(ch);
    while(last<len){
    if(ch[first]==ch[last] || first==-1){

    first++;last++;
    next[last]=first;
    }
    else

    first=next[first];

    }
    用自己和自己KMP然后得出next[]
    最后的出来的就是next[]了,当然我这个next[]是初值为-1的,你书上写的应该是最大匹配值,就是将我的全部左移一位的结果
    2019-07-17 22:55:55
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载