白書2.3.1 最長公共子序列

求兩字符串的最長公共子序列

#include <bits/stdc++.h>
using namespace std;

int dp[100][100];

int main()
{
	string a, b;
	cin >> a >> b;
	for (int i = 0; i < a.length(); ++i){
		for (int j = 0; j < b.length(); ++j){
			if (a[i] == b[j])dp[i + 1][j + 1] = dp[i][j] + 1;
			else dp[i +1][j + 1] = max(dp[i + 1][j], dp[i][j + 1]);
		}
	} 
	cout <<dp[a.length()][b.length()] << endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章