博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛棚回声
阅读量:6134 次
发布时间:2019-06-21

本文共 1255 字,大约阅读时间需要 4 分钟。

P1029 牛棚回声
时间: 1000ms / 空间: 131072KiB / Java类名: Main

背景

USACO OCT09 3RD

描述

奶牛们灰常享受在牛栏中牟叫,因為她们可以听到她们牟声的回音。虽然有时候并不能完全听到完整的回音。Bessie曾经是一个出色的秘书,所以她精确地纪录了所有的牟叫声及其回声。她很好奇到底两个声音的重复部份有多长。
输入两个字符串(长度為1到80个字母),表示两个牟叫声。你要确定最长的重复部份的长度。两个字符串的重复部份指的是同时是一个字符串的前缀和另一个字符串的后缀的字符串。
我们通过一个例子来理解题目。考虑下面的两个牟声:
     moyooyoxyzooo
     yzoooqyasdfljkamo
第一个串的最后的部份"yzooo"跟第二个串的第一部份重复。第二个串的最后的份"mo"跟第一个串的第一部份重复。所以"yzooo"跟"mo"都是这2个串的重复部份。其中,"yzooo"比较长,所以最长的重复部份的长度就是5。

输入格式

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

输出格式

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

测试样例1

输入

abcxxxxabcxabcd 
abcdxabcxxxxabcx

输出

11

备注

"abcxxxxabcx"是第一个字符串的前缀和第二个字符串的后缀。
 

一个从头一个从尾,两个指针一直比较,然后换过来,一个从尾,一个从头,枚举模拟答案进行判断
#include
#include
#include
#include
#define inf 0x7fffffffusing namespace std;char s1[100],s2[100];bool check(char a[],char b[],int l){ int n=strlen(b+1); for(int i=1;i<=l;i++)if(a[i]!=b[n-l+i])return 0; return 1;}int main(){ scanf("%s%s",s1+1,s2+1); int n1=strlen(s1+1),n2=strlen(s2+1); for(int i=min(n1,n2);i>=1;i--) { if(check(s1,s2,i)||check(s2,s1,i)) { cout<
弱的不行的我QAQ题都不会写

 

 
 

转载于:https://www.cnblogs.com/gc812/p/5799143.html

你可能感兴趣的文章
POJ3668 Game of Lines
查看>>
[NOIP2003] 提高组 洛谷P1040 加分二叉树
查看>>
Codeforces Round #389 Div.2 B. Santa Claus and Keyboard Check
查看>>
Java基础—异常
查看>>
1-3-1中间固定两边变化
查看>>
.Net 得到星期 和 天气预报
查看>>
经典计算机算法设计方法(2) -- 回溯法
查看>>
radio选择
查看>>
JS中关于clientWidth offsetWidth scrollWidth 等的含义
查看>>
1、NIO--NIO和IO的区别
查看>>
ArcGIS for qml -添加自由文本
查看>>
Apache Shiro 使用手册(二) Shiro 认证
查看>>
Hibernate的七种映射关系之七种关联映射(一)
查看>>
Centos7 yum安装chrome浏览器
查看>>
go http
查看>>
设计模式-单例模式
查看>>
第5次作业+105032014108+曾宏宇
查看>>
IOS 获取 文件(UIImage) 创建时间
查看>>
26 Arcpy跳坑系列——ExportToPNG
查看>>
Java关闭线程的安全方法
查看>>