最长公共子序列 题解

题目在主页,如有出错请指出

include <bits/stdc++.h>

using namespace std;

int f[205][205];

int main()
{
string sa, sb;
getline(cin, sa);
getline(cin, sb);
int la = sa.size();
int lb = sb.size();
sa = ' ' + sa;
sb = ' ' + sb;
for (int i = 1;i <= la;i++)
f[i][0] = 0;
for (int j = 1;j <= lb;j++)
f[0][j] = 0;
for (int i = 1;i <= la;i++)
for (int j = 1;j <= lb;j++)
if (sa[i] == sb[j]) f[i][j] = f[i - 1][j - 1] + 1;
else f[i][j] = max(f[i - 1][j], f[i][j - 1]);
cout << f[la][lb] << endl;
return 0;
}

posted @ 2025-05-24 10:48  嵇若凌  阅读(10)  评论(0)    收藏  举报