您的位置:首页 > 其它

COdevs1425最长公共子串

2016-10-30 00:00 190 查看
题目描述 Description
输入N(2<=N<=20)个字符串,输出最长公共子串。

输入描述 Input Description
输入N

再输入N个字符串

输出描述 Output Description
输出最大公共子串。

样例输入 Sample Input
3

abce

cabk

jaab

样例输出 Sample Output
ab

跪给STL。。一个substr完美解决所有问题。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

string a[30],b[200];

int num=0;
bool cmp(string x,string y)
{
return x.length()>y.length();
}
int main()
{
string s;
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=0;i<a[1].length();i++)
{
int kg=0;
for(int j=i;j<a[1].length();j++)
{
s=a[1].substr(i,j-i+1);
for(int k=2;k<=n;k++)
{
if(a[k].find(s,0)!=string::npos)
continue;
else
{
kg=1;break;
}
}
if(kg==1)break;
else b[++num]=s;
}
}
sort (b+1,b+n+1,cmp);
cout<<b[1];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: