a/c giúp e với ạ
đề bài là tìm xâu con dài nhất của hai chuỗi
bài e làm như này ạ
#include <iostream>
#include <string>
using namespace std;
string findLongestPrefix(string s1, string s2)
{
int a = s1.length();
int b = s2.length();
int h,l=0;
int s3[10000][10000];
for (int i=0; i < 10000; i++)
for (int j=0; j < 10000; j++)
s3[i][j] = 0;
for (int i=0; i< a; i++)
for (int j=0; j< b; j++)
{
if (i == 0)
if (s1[i] == s2[j])
{
s3[i][j]++;
if (s3[i][j] > l)
{
l = s3[i][j];
h = i;
}
}
else
if (s1[i] == s2[j])
{
s3[i][j] = s3[i-1][j-1] + 1;
if (s3[i-1][j-1] > l)
{
l = s3[i][j];
h = i;
}
}
}
int r = h-l+1;
string s;
for (int i = 0;i < l;i++)
{
s[i]=s1[r];
r++;
}
return s;
}
int main() {
string s1="nguyenvana";
string s2="nguyenvanb";
cout << findLongestPrefix(s1, s2);
return 0;
}
a/c chỉ giúp e lỗi sai với ạ với nếu có chỗ nào không ổn thì chỉ e với!
e cảm ơn