zoukankan      html  css  js  c++  java
  • A题:Common Substrings(KMP应用)

    原题链接

    注意:2号和3号get_next()函数中next[i]赋值时的区别,一个是0,一个是1,且不能互换 

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    const int maxn=1e5+10;
    char ch[2*maxn];
    char s[maxn],t[maxn];
    int T,next[2*maxn];
    /*1.
    void get_next(char *s)
    {
        next[1]=0;
        //printf("%d
    ",next[1]);
        int i=1,j=0;
        int slen=strlen(s);
        while(i<slen){
            if(j==0||s[i-1]==s[j-1]){
                i++,j++;
                next[i]=j;
                //printf("%d
    ",next[i]);
            }
            else j=next[j];
        }
    }严蔚敏数据结构P83页代码
    */
    void get_next(char *s)
    {
        int slen=strlen(s);
        next[1]=0;
        for(int i=1;i<slen;i++){
            int j=next[i];
            while(j&&s[i]!=s[j]) j=next[j];
            next[i+1]=(s[i]==s[j])?j+1:0;
        }
    }
    /*3.
    void get_next(char *s)
    {
        next[0]=0,next[1]=0;
        //printf("%d
    ",next[1]);
        int slen=strlen(s);
        for(int i=2;i<=slen;i++){
            int j=next[i-1];
            while(j&&s[i-2]!=s[j-1]) j=next[j];
            next[i]=(s[i-2]==s[j-1])?j+1:1;
            //printf("%d
    ",next[i]);
        }
    }按照做数据结构笔试题的步骤一步一步推导
    */
    int main()
    {
        scanf("%d",&T);
        while(T--){
            cin>>s>>t;
            int slen=strlen(s);
            int tlen=strlen(t);
            for(int i=0;i<tlen;i++) ch[i]=t[i];
            ch[tlen]='#';
            for(int i=0;i<slen+tlen+1;i++) ch[i+tlen+1]=s[i];
            int now=slen+tlen+1;
            ch[now]=0;
            int ans=0;
            memset(next,0,sizeof(next));
            get_next(ch);
            while(next[now]>0){
                ans++;
                now=next[now];
            }
            printf("%d
    ",ans);
        }
    }
  • 相关阅读:
    Intellij IDEA使用姿势
    款阿里开源的 Java 诊断工具Arthas
    Spring Boot Runner启动器
    Spring Boot 2.x 启动全过程源码分析
    Spring Boot自动配置原理
    vue包部署在tomcat上,解决资源路径问题
    输入回车 回显换行
    session和cookie
    WebStorage——SessionStorage、LocalStorage与cookie
    HTML5 cache
  • 原文地址:https://www.cnblogs.com/freinds/p/6544302.html
Copyright © 2011-2022 走看看