本文实例讲述了C++动态规划之最长公子序列解决方法。分享给大家供大家参考。具体分析如下:
问题描述:
求出两个字符串中的最长公子序列的长度。
输入:
csblog
belong
输出:
max length = 4
实现代码:
#include#include int arr[200][200]; int main() { char str1[100],str2[100]; scanf("%s%s",str1,str2); int len1 = strlen(str1); int len2 = strlen(str2); int i,j; for(i = 0 ; i <= len1 ; ++i) { for(j = 0 ; j <= len2 ; ++j) arr[i][j] = 0; } for(i = 1 ; i <= len1 ; ++i) { for(j = 1 ; j <= len2 ; ++j) { if(str1[i - 1] == str2[j - 1]) { arr[i][j] = arr[i - 1][j - 1] + 1; } else { arr[i][j]=arr[i][j-1]>arr[i-1][j]?arr[i][j-1]:arr[i-1][j]; } } } printf("max length = %dn",arr[len1][len2]); return 0; }
希望本文所述对大家的C++程序设计有所帮助。



