135、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为 "cad"
2014-11-04 22:27
429 查看
35、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为
"cad"
"cad"
/* 35、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为 "cad" 不同于56的最长公共子串 DP题算法导论上有: c[i,j]=0 i=0||j=0 =c[i-1,j-1]+1 a[i]==a[j] =max(c[i-1,j],c[i,j-1]) a[i]!=a[j] 本题 就是循环枚举 */ #include<iostream> #include<stdio.h> #include<cmath> #include<algorithm> using namespace std; int GetCommon(char s1[], char s2[]) { int len1=strlen(s1); int len2=strlen(s2); int r,maxlen=0; for(int i=0;i<len1;i++) { for(int j=0;j<len2;j++) { if(s1[i]==s2[j]) { int as=i,bs=j,count=1; while(as+1<len1&&bs+1<len2 &&s1[++as]==s2[++bs]) count++; if(count>maxlen) { maxlen = count; r=i; } } } } for(int i=r;i<r+maxlen;i++) printf("%c",s1[i]); printf("\n"); return maxlen; } int main() { char a[]={"abccade"}; char b[]={"dgcadde"}; printf("%s和%s的最长公共子串是:\n",a,b); printf("长度为:%d\n",GetCommon(a,b)); return 0; }
相关文章推荐
- 找出两个字符串中最大公共子字符串,如"abccade"、"dgcadde"的最大子串为"cad"
- 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
- 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
- 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
- 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
- 编程实现查找两个字符串的最大公共子串 示例:"aocdfe"和"pmcdfa"最大公共子串为"cfd"
- 编程实现获取两个字符串中最大相同子串
- 一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。 Input 第一行两个字
- 一个字符串A的子串被定义成从A中顺次选出若干个字符构成的串。如A=“cdaad" ,顺次选1,3,5个字符就构成子串" cad" ,现给定两个字符串,求它们的最长共公子串。 小王对既是素数又是回文的
- 找出两个字符串中最大的公共子串的简单实现
- 找出两个字符串中最大的公共子串的简单实现
- 找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的最大子串为"actyet
- 找出两个字符串中最大的公共子串(java实现)
- 找出两个字符串中最大的公共子字符串
- java语言编程,求两个字符串的最大子串
- 【java编程】String之两个字符串获取最大子串
- C++实现求两个字符串的最大公共子串
- 编程查找两个字符串最大公共子串
- 找出两个字符串中最大公共子字符串
- 找出字符串的最长子串,要求子串的所有字符相同,如:"abcdeeefgh"结果是"eee"