求多个字符串相同的且最前面的子字符串(该字符串长度>=3)【用递归进行判断】
来源:互联网 发布:淘宝服务市场推广 编辑:程序博客网 时间:2024/05/16 04:15
#include <iostream>
using namespace std;
char a[100][10000];
int p1,p2,b[100],n,k;
bool p(int p1,int p2)
{int i,j;
if(p1==n-1)
return 1;
else{
for(i=p2;i<strlen(a[p1])-2;i++)
for(j=0;j<strlen(a[p1+1])-2;j++)
if(a[p1][i]==a[p1+1][j]&&a[p1][i+1]==a[p1+1][j+1]&&a[p1][i+2]==a[p1+1][j+2])
{if(p(p1+1,j))
{b[p1]=i;b[p1+1]=j;return 1;}
}
}
return 0;
}
int main()
{
int t,i,j;
cin>>t;
while(t--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
if(p(0,0))
{
bool o=0;
for(i=b[0]+1;i<strlen(a[0]);i++)
{for(j=1;j<n;j++)
if(a[0][i]!=a[j][i-b[0]+b[j]])
{o=1;break;}
if(o==1)break;
}
for(j=b[0];j<i;j++)
cout<<a[0][j];
cout<<a[i-1]<<endl;
}
else cout<<"no significant commonalities"<<endl;
}
return 0;}
using namespace std;
char a[100][10000];
int p1,p2,b[100],n,k;
bool p(int p1,int p2)
{int i,j;
if(p1==n-1)
return 1;
else{
for(i=p2;i<strlen(a[p1])-2;i++)
for(j=0;j<strlen(a[p1+1])-2;j++)
if(a[p1][i]==a[p1+1][j]&&a[p1][i+1]==a[p1+1][j+1]&&a[p1][i+2]==a[p1+1][j+2])
{if(p(p1+1,j))
{b[p1]=i;b[p1+1]=j;return 1;}
}
}
return 0;
}
int main()
{
int t,i,j;
cin>>t;
while(t--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
if(p(0,0))
{
bool o=0;
for(i=b[0]+1;i<strlen(a[0]);i++)
{for(j=1;j<n;j++)
if(a[0][i]!=a[j][i-b[0]+b[j]])
{o=1;break;}
if(o==1)break;
}
for(j=b[0];j<i;j++)
cout<<a[0][j];
cout<<a[i-1]<<endl;
}
else cout<<"no significant commonalities"<<endl;
}
return 0;}
0 0
- 求多个字符串相同的且最前面的子字符串(该字符串长度>=3)【用递归进行判断】
- 字符串中相同的且长度最长的子串
- 字符串中出现相同且长度最长的子序列
- 寻找相同且长度最长的字符串
- 字符串中出现的相同且长度最长的字符串
- 输入字符串,找出相同且长度最长的子字符串,输出
- 字符串中相同且长度最长的字符串
- 字符串中相同且长度最长的字符串
- 字符串中相同且长度最长的字符串
- 匹配两个字符串中,相同且最长的子字符串
- 一行字符串,寻找其中出现相同且长度最长的子串
- 查找两个字符串中最大的相同子字符串长度
- 判断字符串的长度
- 输入一行字符串,找出其中的相同且长度最长的字符串P227
- 输入一行字符串,找出其中出现的相同且长度最长的字符串
- 输入一行字符串,找出其中出现的相同且长度最长的字符串
- 求字符串中相同且长度最长的字符串及其首字母的位置
- 输入一行字符串,找出其中的相同且长度最长的字符串
- 用u盘和iso镜像文件装win8.1系统
- Know the HEVC Standard
- linux--watch命令使用
- Windows问题集
- HDUJ 2032 杨辉三角
- 求多个字符串相同的且最前面的子字符串(该字符串长度>=3)【用递归进行判断】
- 没智能手机会死星人的福音来了
- apache和nginx原理上的不同之处
- PHP + Memcache 实现多服务器session共享
- RaspberryPie安装操作系统及前期的准备工作
- C语言 16进制字符串 转 16进制 方法
- Valid Parentheses
- Android编码规范
- C语言 内存操作函数