和UVA 111几乎一模一样,不同的是它读入的是char,注意一下空格的问题就行了。虽然上次是抄的,这次就能自己写了。
1 #include <iostream>
2 #include <cstring>
3 using namespace std;
4 const int MAX = 1005;
5 char a[MAX],b[MAX];
6 int dp[MAX][MAX];
7 int main()
8 {
9 int la,lb,i,j;
10 while(cin.getline(a,MAX))
11 {
12 cin.getline(b,MAX);
13 la = strlen(a);
14 lb = strlen(b);
15 memset(dp,0,sizeof(dp));
16 for(i = 0; i < la; i++)
17 for(j = 0; j < lb; j++)
18 if(a[i] == b[j])
19 dp[i+1][j+1] = dp[i][j] + 1;
20 else
21 dp[i+1][j+1] = max(dp[i][j+1],dp[i+1][j]);
22 cout<<dp[la][lb]<<endl;
23 }
24 return 0;
25 }
不过UVA还真是变态,明明是c++,却不支持string类,也不能include<string>,太坑爹了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步