您的位置:首页 > 其它

2016普级组模拟试题(20161114) 给出字符串

2018-03-13 16:56 162 查看

题目:

2016普级组模拟试题(20161114) 给出字符串

题意:

给出我们一个字符串,求他们中最长的子串的长度

分析:

首先,我们要注意的是题目中提出我们要求的是子串,所以长度>1!

然后,我们再注意下字符串的长度,瞬间哈哈——<=60。随后我们就可以纯暴力AC。

AC后感想:

不得不说,这题真的是水。但是小编一开始傻傻的以为第一次找到的就一定是最大值。可想而知。。。但居然还AC了9个点《⊙⊙》。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define LL long long
using namespace std;
inline LL read()
{
LL a=0,f=1;char s=getchar();
while(s<'0'||s>'9') {if(s=='-') f=-1;s=getchar();}
while(s>='0'&&s<='9') {a=a*10+s-'0';s=getchar();}
return a*f;
}
string s,z,c,kc;
int max(int x,int y)
{
return x>y? x:y;
}
int main()
{
cin>>s;
int l=s.size()-1;
int maxj=0;
for(int i=0;i<=l-1;i++)//枚举起始位置
{
for(int j=l;j>=2;j--)//枚举长度
{
c=kc;z=kc;//初始化。kc为空串
for(int k=i;k<=i+j-1;k++)//摘取字符串
c+=s[k];
for(int k=i+1;k<=l;k++)
z+=s[k];
if(z.find(c)!=-1)
maxj=max(maxj,j);//更新最大值
}
}
printf("%d",maxj);//输出
fclose(stdin);
fclose(stdout);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  暴力 字符串