1

虚空终端 · 发布于 2022-09-10 · 浏览 585 回复 1

1

2

3

4

5

6

7

8

9

#include <iostream>
#include <cstring>
using namespace std;

int dp[1005][1005];
int main() {
	memset(dp, 0, sizeof(dp));
	string a, b;
	cin >> a >> b;
	int na = a.size(), nb = b.size();
	for (int i = 1; i <= na; i++) {
		for (int j = 1; j <= nb; 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]);
		}
	}
	cout << dp[na][nb];
	return 0;
}

全部回复 共 1 条

  1. 耦园采雪 #1 ·

    真不错

发表回复