zoukankan      html  css  js  c++  java
  • 最长子串(FZU2128)

    最长子串

    Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    问题很简单,给你一个字符串s,问s的子串中不包含s1,s2...sn的最长串有多长。

    Input

    输入包含多组数据。第一行为字符串s,字符串s的长度1到10^6次方,第二行是字符串s不能包含的子串个数n,n<=1000。接下来n行字符串,长度不大于100。

    字符串由小写的英文字符组成。

    Output

    最长子串的长度

    Sample Input

    lgcstraightlalongahisnstreet
    5
    str
    long
    tree
    biginteger
    ellipse

    Sample Output

    12
     
     
    #include <stdio.h>
    #include <algorithm>
    #include <string.h>
    using namespace std;
    
    char str[1000005];
    int len;
    struct kode
    {
        char s[105];
    } a[1005];
    
    struct node
    {
        int s,e;
    } b[1000005];
    
    int cmp(node a,node b)
    {
        return a.e<b.e;
    }
    
    int main()
    {
        int n,ans;
        while(~scanf("%s",str))
        {
            int i,j,k;
            scanf("%d",&n);
            len = 0;
            for(i = 0; i<n; i++)
            {
                scanf("%s",a[i].s);
                int pos = 0;
                int l = strlen(a[i].s);
                while(strstr(str+pos,a[i].s)!=NULL)
                {
                    int f = strstr(str+pos,a[i].s)-str;
                    b[len].s=f;
                    b[len].e=f+l-1;
                    len++;
                    pos = f+l-1;
                    // printf("%d %s
    ",f,str+pos);
                }
            }
            b[len].s = b[len].e = strlen(str);
            len++;
            sort(b,b+len,cmp);
            ans = -1;
            // printf("len = %d
    ",len);
            for(i = 1; i<len; i++)
            {
                int tem = b[i].e-b[i-1].s-1;
                // printf("%d
    ",tem);
                ans = max(ans,tem);
            }
            if(ans == -1)
                printf("%d
    ",strlen(str));
            else
                printf("%d
    ",ans);
    
        }
    
        return 0;
    }
  • 相关阅读:
    Petya and Countryside
    大数A+B
    python-requests正则
    python-UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 157: illegal multibyte sequence
    python-mysql数据迁移
    python-flask框架路由
    python-flask框架基础
    MYSQL-内外自连接-判断函数
    MYSQL-分组查询-where和having的区别
    mysql增删
  • 原文地址:https://www.cnblogs.com/yuyixingkong/p/4385714.html
Copyright © 2011-2022 走看看