hdu1159-Common Subsequence

Common Subsequence

dp之最长公共子序列

 

// File Name: hdu1159.cpp

// Author: rudolf

// Created Time: 2013年04月25日 星期四 12时12分33秒



#include<vector>

#include<list>

#include<map>

#include<set>

#include<deque>

#include<stack>

#include<bitset>

#include<algorithm>

#include<functional>

#include<numeric>

#include<utility>

#include<sstream>

#include<iostream>

#include<iomanip>

#include<cstdio>

#include<cmath>

#include<cstdlib>

#include<cstring>

#include<ctime>

#include<string>

using namespace std;

const int maxn=1005;

int dp[maxn][maxn];

int main()

{

	int len1,len2;

	string str1,str2;

	while(cin>>str1>>str2)

	{

		memset(dp,0,sizeof(dp));

		for(int i=0;i<str1.length();i++)

			for(int j=0;j<str2.length();j++)

			{

				if(str1[i]==str2[j])

					dp[i+1][j+1]=dp[i][j]+1;

				else

					dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);

			}

		cout<<dp[str1.length()][str2.length()]<<endl;



	}

return 0;

}	


 

 

你可能感兴趣的:(sequence)