求最长公共序列问题
2011-09-30 13:21
155 查看
动态规划
#include <iostream> #include <string.h> using namespace std; #define NUM 100 int public_length(char *a, char *b) { int lena = strlen(a); int lenb = strlen(b); int DP[NUM][NUM]; for(int i=0; i<=lena; i++) DP[i][0] = 0; for(int j=0; j<=lenb; j++) DP[0][j] = 0; for(int i=1; i<=lena; i++) for(int j=1; j<=lenb; j++) { if(a[i-1] == b[j-1]) { DP[i][j] = DP[i-1][j-1] + 1; } else { if(DP[i-1][j] < DP[i][j-1]) DP[i][j] = DP[i][j-1]; else DP[i][j] = DP[i-1][j]; } } return DP[lena][lenb]; } int main() { char a[NUM]; char b[NUM]; int T; cin>>T; for(int i=0; i<T; i++) { cin>>a; cin>>b; int result = public_length(a, b); cout<<result<<endl; } return 0; } |
相关文章推荐
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- 最长公共子串、最长公共子序列、最长回文子串、模式匹配、最大子序列--字符串问题整理
- 最长公共子序列,最长公共子串,最长递增子序列的问题~
- 最大连续子序列和,乘积,最长递增子串,最长公共子串,子序列等问题(动态规划等)
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- HDU1257 最长递增公共子序列问题
- [算法导论]动态规划---最长公共最序列问题
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- 最长公共子串(子序列)、最长递增子序列、最长回文子串等问题
- “最长公共字符串子序列”问题的动态规划法算法
- “最长公共字符串子序列”问题的动态规划法算法
- 一个看似简单却复杂的问题:求两个字符串的 左向右匹配 所有的 最长连续的 公共子字符串( 在每个字符串中先后次序相同的) 序列
- “最长公共字符串子序列”问题的动态规划法算法
- 最长公共子串、最长公共子序列、最长回文子串、模式匹配、最大子序列--字符串问题整理
- “最长公共字符串子序列”问题的动态规划法算法