ZOJ1733 | | HDU1159简单的DP求两个字符串最大子序列的长度,没啥好说的,照着书上敲得。
2012-03-21 21:41
357 查看
View Code
#include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 1000 int c[MAX][MAX],len1,len2; char x[MAX],y[MAX]; void LCSLength(int m,int n,char *x,char *y) { int i,j; for(i=0; i<m; i++) c[i][0] = 0; for(i=0; i<n; i++) c[0][i] = 0; for(i=0; i<m; i++) for(j=0; j<n; j++) { if(x[i] == y[j]) { c[i+1][j+1] = c[i][j] + 1; } else if(c[i][j+1] >= c[i+1][j]) { c[i+1][j+1] = c[i][j+1]; } else { c[i+1][j+1] = c[i+1][j]; } } } int main() { while(scanf("%s%s",x,y) != EOF ) { getchar(); len1 = strlen(x); len2 = strlen(y); LCSLength(len1,len2,x,y); printf("%d\n",c[len1][len2]); } return 0; }
相关文章推荐
- 求两个字符串公共子序列的最大长度(参考阿里巴巴2015研发笔试)(简单)
- hdu 1159(DP+字符串最长公共序列)
- HDU 1231 最大连续子序列 简单dp
- (hdu step 3.2.1)Max Sum(简单dp:求最大子序列和、起点、终点)
- hdu 1159(Common Subsequence)简单dp,求出最大的公共的字符数
- hdu 1024和hdu 1244 两个最大和子序列 dp 优化
- hdu 1159(Common Subsequence)简单dp,求出最大的公共的字符数
- (字符串的处理4.7.16)POJ 1159 Palindrome(让一个字符串变成回文串需要插入多少个字符...先逆序,在减去公共子序列的最大长度即可)
- HDU 1159 Common Subsequence 公共子序列 简单DP
- 2015年阿里在线笔试题:求两个字符串的最大公共子序列长度的C语言解法
- 求两个字符串的最大公共子序列(可以不连续)的长度,并输出这个子序列
- (字符串的处理4.7.16)POJ 1159 Palindrome(让一个字符串变成回文串需要插入多少个字符...先逆序,在减去公共子序列的最大长度即可)
- 题目标题: 计算两个字符串的最大公共字串的长度,字符不区分大小写
- HDU 1159 Common Subsequence(dp最大公共子串)
- HDU 1003 Max Sum(dp,最大连续子序列和)
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- hdu杭电1003 dp 连续子序列最大值
- HDU 1231 最大连续子序列 dp
- HDU 1231:最大连续子序列(DP)
- HDU 1231 最大连续子序列 &&HDU 1003Max Sum (区间dp问题)