Đề bài:
Code của em đây ạ
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll pa[209][209],ma;
string s1,s2,skq = "";
void lam()
{
for(ll i = s1.length() - 1;i >= 0;i--)
for(ll j = s2.length() - 1;j >= 0;j--)
if(s1[i] == s2[j])
pa[i][j] = pa[i + 1][j + 1] + 1;
else
pa[i][j] = max(pa[i + 1][j],pa[i][j + 1]);
ma = pa[1][1];
}
void lam1()
{
ll is = 1,js = 1,so = 0,i,j;
while(ma != so)
{
for(ll ch = '9';ch >= '0';ch--)
{
i = is;
j = js;
while(s1[i] != ch && i < s1.length())
i++;
while(s2[j] != ch && j < s2.length())
j++;
if(pa[i][j] == ma - so)
{
skq = skq + (char)ch;
is = i + 1;
js = j + 1;
break;
}
}
so ++;
}
while(skq[0] == '0' && skq != "0")
skq.erase(0,1);
}
void w()
{
if(ma == 0)
cout << "0";
else
{
lam1();
cout << skq;
}
}
int main()
{
cin >> s1 >> s2;
lam();
w();
}
Với test mẫu thì em đúng nhưng với test X = 12345 và Y = 4351023 thì code của em ra là 35 chú không phải 123 ạ!
Nhờ mọi người sửa giúp em với ạ!
Em cảm ơn ạ!