最长公共子序列
来源:互联网 发布:java 刷新控制台 编辑:程序博客网 时间:2024/05/22 11:42
方法1:--------------------------------------------------------------------------------#include<stdio.h>#include<string.h>#include<stdlib.h>#define MAX(a,b) ( a > b ? a : b)int main(){ int n; scanf("%d",&n); while (n--) { char a[1000] = {0}, b[1000] = {0}; scanf("%s%s",a,b); int a_len = strlen(a), b_len = strlen(b); int dp[a_len+1][b_len+1]; //定义dp[][]用来记录所有可能的最长公共子序列长度 memset(dp, 0, sizeof(dp)); //初始化二维数组dp[][]; int i, j; for (i = 1; i <= a_len; i++) //注意i和j应该从一开始 { for (j = 1; j <= b_len; j++) { // 如果a[i-1] == b[i-1],则最长公共子序列长度加1 if (a[i-1] == b[j-1]) dp[i][j] = dp[i-1][j-1] + 1; //如果a[i-1] != b[i-1],则在两个子问题中去较大值 else dp[i][j] = MAX(dp[i-1][j], dp[i][j-1]); } } printf("%d\n",dp[a_len][b_len]); } return 0;}--------------------------------------------------------------------------------方法2:--------------------------------------------------------------------------------#include<stdio.h>#include<string.h>int MAX(int a, int b, int c){ int t = a; if (t > b) { if (t > c) return a; else return c; } else { if (b > c) return b; else return c; }}int main(){ int n; scanf("%d",&n); while(n--) { char a[1000],b[1000]; scanf("%s",a); scanf("%s",b); int c[100][100]={0}; memset(c, 0, sizeof(c)); int i,j; int max=0,same; for(i=1;i<=strlen(a);i++) for(j=1;j<=strlen(b);j++) { if(a[i-1]==b[j-1]) same=1; else same=0; c[i][j]=MAX(c[i-1][j-1]+same,c[i-1][j],c[i][j-1]); if(max<c[i][j]) max=c[i][j]; } printf("%d\n",max); } return 0;}--------------------------------------------------------------------------------
阅读全文
0 0
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列...
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 最长公共子序列
- 硬币找零
- Facebook 推出 Workplace 进军企业社交网络领域
- 顶不住“连环炸”,韩联社消息:Note 7 停产
- 洛谷10月月赛R2·浴谷八连测R3 P3933 Chtholly Nota Seniorious
- 【OPENGL】glReadPixels读取深度信息出现的问题
- 最长公共子序列
- 洛谷 [P1801] 黑匣子
- 360大数据: 十一期间骚扰诈骗电话日均高达1.5亿次
- 骗子十一不休息 360专家揭露转账诈骗花招
- 自主研发单元 NF AUDIO NF6首发听感体验
- 01背包
- 拍照更清晰OPPO R9s使用全新的双核对焦技术
- 质检总局:即日起三星将全面召回中国区 Note 7
- 2.53 亿美元!红外热成像巨头 FLIR 收购工业相机领导者 Point Grey