最长公共子序列LCS

来源:互联网 发布:购卖淘宝小号在哪购 编辑:程序博客网 时间:2024/05/18 14:42

    长时间没有写动态规划的程序了,离开poj已有时日,貌似很久远的事了,称算法课程,把以前的复习一下,挑个软柿子吃一吃

#include<iostream>#include<string>#include<math.h>#include<algorithm>using namespace std;
const int N = 1000;int dp[N][N];#define max(a, b)(a>b ? a:b)int LSC(string a, string b){memset(dp, sizeof(dp), 0);for(int i=1; i<=a.length(); i++){for(int j=1; j<=b.length(); j++){if(a[i-1] == b[j-1]){dp[i][j] = dp[i-1][j-1] + 1;}else{dp[i][j] = max(dp[i-1][j], dp[i][j-1]);}}}return dp[a.length()][b.length()];}void solve(){string a, b;while( cin >> a >> b){int ret = LSC(a, b);cout << ret << endl;}}int main(){solve();return 0;}


原创粉丝点击