三九宝宝网宝宝百科宝宝知识

求N个字符串的最长公共子串 N

03月04日 编辑 39baobao.com

[孕妈挤公车的N个高招]由于既经济又便利,许多准妈妈都会选择地铁这种交通工具,但在怀孕初期时,由于特征不那么的明显,而这个时段,宝宝也十分脆弱,为了安全起见,需要采用什么样的措施呢?准妈你可以这样做...+阅读

用动态规划显然没有那么恐怖的内存……

只能枚举了

#include

#include

#define MAXN 20

#define MAXL 256

int n;

int len[MAXN];

char str[MAXN][MAXL];

int match(char *s1,char *s2,int len)

{

while (len--)

{

if (*s1!=*s2) return 0;

s1++;

s2++;

}

return 1;

}

main()

{

int i,j;

int ans,ansi;

char line[100];

scanf("%d",&n);

gets(line);

for (i=0;i

{

gets(str[i]);

len[i]=strlen(str[i]);

}

ans=-1;

for (j=len[0];ans==-1 & j>0;j--)

for (i=0;ans==-1 & i+j-1

{

int flag1,k;

flag1=1;

for (k=1;flag1 & k

{

int flag2,s;

flag2=0;

for (s=0;!flag2 & s+j-1

if (match(str[0]+i,str[k]+s,j)) flag2=1;

if (!flag2) flag1=0;

}

if (flag1)

{

ans=j;

ansi=i;

}

}

if (ans==-1) puts("No common substrings!");

else

{

for (i=0;i

putchar('\n');

}

}

搜索两个最长字符串的最长子序列有什么办法

可以用矩阵记录,其实只要一个一维的矩阵就可以记录,我发个代码你看看,不过这个只记录了长度,你可以改改,就可以记录位置再提取。#include

#include

#include

void dz(char *a,int m,int n)

{

char temp;

if((m==n)||(m>n)) return;

else

{

temp=a[m];

a[m]=a[n];

a[n]=temp;

dz(a,m+1,n-1);

}

}

main()

{

int n,i,j,k,*c,max;

char a[5001],b[5001],d;

while(scanf("%d",&n)!=EOF)

{

max=0;

c=(int *)malloc(n*sizeof(int));

c=(int *)memset(c,0,n*sizeof(int));

scanf("%c",&d);

while(d<48||(d>57&d<65)||(d>90&d<97)||d>122)scanf("%c",&d);

a[0]=d;

for(i=1;i

a[n]='\0';

strcpy(b,a);

dz(b,0,n-1);

for(i=0;i

{

if(a[i]==b[0])c[i]=1;

if(c[i]>max)max=c[i];

}

for(i=1;i

{

for(j=n-1;j>0;j--)

{

if(a[j]==b[i])

{

c[j]=c[j-1]+1;

if(c[j]>max)max=c[j];

}

else c[j]=0;

}

if(a[j]==b[i])

{

c[j]=1;

if(c[j]>max)max=c[j];

}

else c[j]=0;

}

printf("%d\n",max);

free(c);

}

return 0;

}这个程序是用来找一个字符串和其逆序字符串的最长子序列

寻找最长公共子字串

假定长字符串s已经定义并且已经赋值(我后面就直接用了)那么: String p;//短字符串 String result=null;//最长弱重复字串 //s已经赋过值了,否则会报错 for(int i=s.length()-2;i>=2;i--){ HashSet hs = new HashSet(); for(ing j=0;j<=s.length()-i;j++){ int count=hs.size(); p=s.substring(j,i+j); hs.add(p); //存放相同的字符串对于HashSet来说size是不变的 if(hs.size()==count){ result=p; break; } } if(result!=null) break; }

以下为关联文档:

WinAPI字符字符串函数8:IsCharUpper是否是个大写字母interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button...

求N个字符串的最长公共子串求N个字符串的最长公共子串,N<=20,字符串长度不超过255。例如:N=3,由键盘依次输入三个字符串为What is local bus ?Name some local buses.local bus is a high speed I/O bus close...

WinAPI字符字符串函数7:IsCharLower是否是个小写字母interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button...

千万要考过四级的N个理由读大学的时候听说拿毕业证不用过四级,心想上面可算下了个合理的规定。但我因此犯了一生中最致命的错误——没有考过四级。我学的是中文系兼修德语,毕业了我先找到一家中德合...

WinAPI字符字符串函数5:IsCharAlpha是否是个字母interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button...

家装中不容忽视的N个验收问题1、 热水管应该分色施工;如果实在改造的量不大,热水管可替代冷水管,但冷水管不可以替代热水管走管。 2、 水管布管应设管卡,管卡安装必须牢固。 3、 水路改造完毕后必须做打压试...

宝宝吃蜂蜜的N个注意事项蜂蜜,既是滋补佳品,又是治病良药,由于它不但甜美可口,而且含有丰富的葡萄糖、果糖、维生素、多种有机酸盐和有益人体健康的微量元素,因而许多人喜食蜂蜜。 一些年轻的父母更是喜...

敬佩于永正老师的N个理由已经很长时间没有参加一些高层次的教学研讨活动了,这次连续参加了两个(在海宁举行的第四届国际小学生作文教学研讨会、在杭州举行的2006西湖博览会名师名校长论坛小学语文专长...

求两个输入的字符串的最长公共子串求两个输入的字符串的最长公共子串,如何获取多个字符串中最长的共同子字符串:1. 算法:求两个字符串的最长公共子串 2. 原理: (1) 将连个字符串分别以行列组成一个矩阵。 (2)。若...

推荐阅读
图文推荐