Tải bản đầy đủ - 0 (trang)
Viết chương trình sử dụng C, C++

Viết chương trình sử dụng C, C++

Tải bản đầy đủ - 0trang

L[0][i]=0;

}

}

int LCS(string X ,string Y , int L[MAX][MAX], int n , int m )

{

int i,j;

for ( i=1;i
{

for(j=1;j
{

if(X[i-1]==Y[j-1])

{

L[i][j]=L[i-1][j-1]+1;

}

else

{

if(L[i-1][j]>=L[i][j-1])

{

L[i][j]=L[i-1][j];

}

else

{

L[i][j]=L[i][j-1];

}

/*L[i][j]=Math.max(L[i-1][j],L[i][j-1]);*/

}

}

}

return L[n-1][m-1];

}

string findPath(string X ,string Y ,int L[][MAX],int n ,int m)

{



string word;

while(n>0 && m>0)

{

if(X[n-1]==Y[m-1])

{

word += X[n-1];

n--;

m--;

}

else

{

if(L[n-1][m]>= L[n][m-1])

{

n--;

}

else

{

m--;

}

}

}

return word;

}

int main()

{

string X,Y;

int L[MAX][MAX];

cin >> X>>Y;

int n = X.length() + 1;

int m = Y.length() + 1;

L[n][m];



ini(X,Y,L,n,m);

int sol = LCS(X,Y,L,n,m);

for (int i=0; i
{

for (int j =0; j
{

cout<
}

cout << endl;

}

cout <<"LCS is " << sol << endl;

string path = findPath(X,Y,L,n-1,m-1);

reverse(path.begin(),path.end());

cout<< "Word is : " << path << endl;

}

Kết quả với 2 bộ dữ liệu:



KẾT LUẬN

Trong bài báo cáo này đã phân tích bài tốn, sử dụng các giải pháp để giải

quyết bài toán trong trường hợp của k xâu ký tự.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Viết chương trình sử dụng C, C++

Tải bản đầy đủ ngay(0 tr)

×