• J 最大值


    链接:https://ac.nowcoder.com/acm/contest/5758/J
    来源:牛客网

    题目描述

    有一个字符串s,对于字符串中一个非前缀子串恰好为字符串的前缀我们称之为ac串。
    请问给出一个字符串他的ac串最大长度为多少

    输入描述:

    输入数据第一行是t,表示数据的组数,接下来每组数据输入一个字符串s
    (t<=10,s<=1e5)

    输出描述:

    输出最大长度
    示例1

    输入

    复制
    2
    aaaaa
    abacc

    输出

    复制
    4
    1

    说明

    aaaab的ac串是aaa(2:4)
    acac的ac串是ac(3:4)

    思路:根据题意可知,字串不含首字符,所以寻找最长字串可以直接从下表为1的位置开始,然后向后遍历,相同标记加1,指针向后移,每次移动都更新最长的子串长度,直至将整个字符串遍历结束。

     1 #include<stdio.h>
     2 #include<string.h>
     3 int max(int a,int b){
     4     return a>b?a:b;
     5 }
     6 int main()
     7 {
     8     int t,i,j,k,l,flag=0,mflag=0;
     9     char s[100000];
    10     scanf("%d",&t);
    11     if(t<=0){
    12         printf("0");
    13         return 0;
    14     }
    15     for(i=0;i<t;i++){
    16         scanf("%s",s);
    17         for(j=0,k=1;k<strlen(s);k++){
    18             j=0;
    19             for(l=k;l<strlen(s)&&j<strlen(s);l++,j++){
    20                 if(s[j]==s[l]){
    21                     flag++;
    22                     mflag=max(mflag,flag);
    23                     if(l>=strlen(s)){
    24                         flag=0;
    25                         break;
    26                     }
    27                     continue;
    28                 }
    29                 flag=0;
    30                 break;
    31             }
    32         }
    33         printf("%d
    ",mflag);
    34         mflag=0;
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    Jquery Ajax 调用 WebService
    Dapper.NET
    HTML5 canvas标签
    SQL内外左右交叉连接
    水晶报表纵向重复
    AngularJS 菜鸟
    什么是MVC框架?
    伪类和伪元素的区别
    常用的本地存储-----cookie篇
    JavaScript中基本数据类型和引用数据类型的区别
  • 原文地址:https://www.cnblogs.com/woju/p/13022514.html
Copyright © 2020-2023  润新知