#include<iostream>
#include<cstring>
using namespace std;
string x,y;//序列本体
int dp[1145][1145];//记录到当前元素为止最长公共子序列的长度
int ma;
int main(){
	cin>>x>>y;
	for(int i=1;i<x.size();i++){//遍历字符串
		for(int j=0;j<y.size();j++){
			dp[i][j]=max(dp[i-1][j],dp[i][j-1]);//不相等,顺承上两对中大的那一个
			if(x[i]==y[j]) dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);//相等,考虑从上对加过来,但如果加过来还不如顺承上一个就不加
		}
	}
	cout<<dp[x.size()-1][y.size()-1];
	return 0;
}

以下是使用纳米搜肥出的测试用例

听说这是世界上最恐怖的测试用例

你敢和他对视10秒吗

1 comments

  • @ 2025-3-30 12:54:22

    简单的也要测,字符串长度为1

    a

    a

    • 1

    Information

    ID
    750
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    # Submissions
    121
    Accepted
    37
    Uploaded By