• KMP笔记


    KMP

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<cmath>
     5 using namespace std;
     6 int len,len1,next[100001];
     7 char st[10000],st1[10000];
     8 bool fid;
     9 int main(){
    10     fid=false;
    11     scanf("%s",st);
    12     scanf("%s",st1);
    13     memset(next,0,sizeof(next));
    14     next[0]=-1;
    15     len=strlen(st);
    16     len1=strlen(st1);
    17     for(int i=1,j=0;i<len;i++){
    18         for(j=next[i-1];j!=-1&&st[j+1]!=st[i];j=next[j]);
    19         if(st[j+1]==st[i])j++;
    20         next[i]=j;
    21     }
    22     for(int i=0,j=-1;i<len1;i++){
    23         for(;j!=-1&&st[j+1]!=st1[i];j=next[j]);
    24         if(st[j+1]==st1[i])j++;
    25         if(j==len-1){
    26             printf("YES
    ");
    27             fid=true;
    28             break;
    29         }
    30     }
    31     if(!fid){
    32         printf("NO
    ");
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    高一下期末考试划水记
    BZOJ 1053
    积性函数与狄利克雷卷积(未完待更)
    Contest Hunter 3101
    POJ2689
    3.17爆零赛
    全概率公式
    矩阵快速幂
    模板练习
    _rqy's Code Style for OI
  • 原文地址:https://www.cnblogs.com/dcdcbigbig/p/8945105.html
Copyright © 2020-2023  润新知