求助。最长公共子串
  • 板块灌水区
  • 楼主Shui_Dream
  • 当前回复3
  • 已保存回复3
  • 发布时间2020/4/28 18:47
  • 上次更新2023/11/7 03:45:29
查看原帖
求助。最长公共子串
104487
Shui_Dream楼主2020/4/28 18:47
#include<bits/stdc++.h>

using namespace std;
int n,t;
string s[105];
bool cheak(string x)
{
	string y=x;
	reverse(x.begin(),x.end());
	for(int i=1;i<=n;i++)
		if(s[i].find(x)==-1 &&s[i].find(y)==-1) return false;		
	return true;
}
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
			cin>>s[i];	
		for(int i=2;i<=n;i++)
			if(s[i].size()<s[1].size()) swap(s[1],s[i]);
		int len=s[1].size();
		for(int i=len;i>=1;i--)
		{
			for(int j=0;j+i-1<len;j++)
			{
				string s1=s[1].substr(j,i);
				if(cheak(s1))
				{
					cout<<i<<"\n";
					i=0;
					break;
				}
			}
		}
	}
	return 0;
}

题目为HDU1238

2020/4/28 18:47
加载中...