• 训练 の 牛棚回声


    牛棚回声

    描述

    奶牛们灰常享受在牛栏中牟叫,因為她们可以听到她们牟声的回音。虽然有时候并不能完全听到完整的回音。Bessie曾经是一个出色的秘书,所以她精确地纪录了所有的牟叫声及其回声。她很好奇到底两个声音的重复部份有多长。

    输入两个字符串(长度為1到80个字母),表示两个牟叫声。你要确定最长的重复部份的长度。两个字符串的重复部份指的是同时是一个字符串的前缀和另一个字符串的后缀的字符串。

    我们通过一个例子来理解题目。考虑下面的两个牟声:

         moyooyoxyzooo
         yzoooqyasdfljkamo

    第一个串的最后的部份"yzooo"跟第二个串的第一部份重复。第二个串的最后的份"mo"跟第一个串的第一部份重复。所以"yzooo"跟"mo"都是这2个串的重复部份。其中,"yzooo"比较长,所以最长的重复部份的长度就是5。

    输入格式

    输入格式:

    * 前两行: 每一行是1个字符串表示奶牛的牟声或它的回声。



    输出格式

    输出格式:

    * 第一行: 包含一个单独的整数表示输入的2个字符串中,一个字符串的前缀和另一个字符串的后
    缀的最长的重复部份的长度。

    测试样例1

    输入

    abcxxxxabcxabcd 
    abcdxabcxxxxabcx

    输出

    11

    备注

    "abcxxxxabcx"是第一个字符串的前缀和第二个字符串的后缀。
     
    就是个字符串的模拟
     
     1 #include<stdio.h>
     2 #include<string.h>
     3 char a[100],b[100];
     4 int main()
     5 {
     6     int i,j,max1,max2,max,k;
     7     while(scanf("%s",a)!=EOF)
     8     {
     9         getchar();
    10         scanf("%s",b);
    11         max1=0;max2=0;max=0;
    12         if(strcmp(a,b)==0)
    13         {
    14             printf("%d
    ",strlen(a));
    15             continue;
    16         }
    17         k=0;
    18         for(i=0;i<strlen(a);i++)
    19         {
    20             if(a[i]==b[k])
    21             {
    22                 max1++;
    23                 k++;
    24         
    25             }
    26             else if(a[i]!=b[k])
    27             {
    28                 i=-1;
    29                 max1=0;
    30                 k++;
    31             }
    32             if(k==strlen(b))
    33                 break;
    34         }
    35             k=0;
    36         for(i=0;i<strlen(b);i++)
    37         {
    38             if(b[i]==a[k])
    39             {
    40                 max2++;
    41                 k++;
    42             
    43             }
    44             else if(b[i]!=a[k])
    45             {
    46                 i=-1;
    47                 max2=0;
    48                 k++;
    49             }
    50             if(k==strlen(a))
    51                 break;
    52         }
    53         if(max1>=max2)
    54         printf("%d
    ",max1);
    55         else
    56         printf("%d
    ",max2);
    57     }
    58 }
  • 相关阅读:
    数据安全:1.98亿购车者的购车记录公之于众
    【作者面对面问答】包邮送《Redis 5设计与源码分析》5本
    关于区块链学习资料
    《机器学习》周志华西瓜书学习笔记(九):聚类
    Bulletproof零知识证明
    数据接收合并
    数据接收合并
    数据接收合并
    数据接收合并
    Tomcat 8 Host-Manager配置访问的方法,全网唯一正确配置
  • 原文地址:https://www.cnblogs.com/ljmzzyk/p/6807818.html
Copyright © 2020-2023  润新知