开发者社区> 问答> 正文

Kmp 算法到底有几种理解

Kmp 算法到底有几种理解

展开
收起
知与谁同 2018-07-18 12:01:40 1404 0
1 条回答
写回答
取消 提交回答
  • var
     p:array[1..1000000] of longint;
     i,j:longint;
     a,b:ansistring;
     
      begin
     
        readln(a);
        readln(b);
     
        P[1]:=0;
        j:=0;
       for i:=2 to length(b) do
         begin
           while (j>0) and (B[j+1]<>B[i]) do j:=P[j];
           if B[j+1]=B[i] then j:=j+1;
           P[i]:=j;
         end;
     
     
         j:=0;
        for i:=1 to length(a) do
            begin
              while (j>0) and (B[j+1]<>A[i]) do j:=P[j];
              if B[j+1]=A[i] then j:=j+1;
              if j=length(b) then
              begin
                writeln(i-length(b)+1);
                halt;
                j:=P[j];
             end;
            end;
         writeln(0);
       end.
    2019-07-17 22:56:01
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

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