最长公共子串
来源:互联网 发布:linux xargs命令 编辑:程序博客网 时间:2024/05/22 13:40
#include<stdio.h>#include<malloc.h>#include<string.h>#include<algorithm>using namespace std;const int MAX = 300;char a[MAX],b[MAX];void cp(char *str1, char *str2){ int i,j,k,len1,len2,mm,x,y; len1 = strlen(str1); len2 = strlen(str2); int c[MAX][MAX]; for(i = 0; i < len1+1; i++) c[i][0]=0; for(j = 0; j < len2+1; j++) c[0][j]=0; mm = -1; for(i = 1 ; i < len1+1 ; i++) { for(j = 1; j < len2+1; j++) { if(str1[i-1]==str2[j-1]) c[i][j]=c[i-1][j-1]+1; else c[i][j]=0; if(c[i][j]>mm) { mm=c[i][j]; x=i; y=j; } } } char s[1000]; k=mm; i=x-1,j=y-1; s[k--]='\0'; while(i>=0 && j>=0) { if(str1[i]==str2[j]) { s[k--]=str1[i]; i--; j--; } else break; } if(strlen(s)) { printf("最长公共子串为:"); puts(s); } else puts("没有公共子串!"); free(c);}int main(void){ while(~scanf("%s",a)) { getchar(); gets(b); cp(a, b); } return 0;}
0 0
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- hibernate 联合主键查询
- java 链表逆序
- draw9patch详解
- ImageView根据屏幕大小动态设置图片的尺寸
- 重构代码坏味道(优雅,little code)<上>
- 最长公共子串
- 第一次来到CSDN
- pgsql多表连接
- Android学习笔记(八) 使用菜单
- Java调用webservice接口方法
- 如何将Map转换成Gson json
- android 各类demo链接
- Java中abstract class 和 interface 的解释和他们的异同点(转)
- 杰出程序员永远都不会说的几句话