- #include <iostream>
- #include <algorithm>
- #include <string>
- using namespace std;
- int lcs_dp(string strings1, string strings2) {
- int m1 = strings1.length(), n1 = strings2.length();
- int dynamicp[m1+1][n1+1];
- for(int i=0;i<=m1;i++){
- for(int j=0;j<=n1;j++){
- if(i==0 || j==0){
- dynamicp[i][j]=0;
- }
- else if(strings1[i-1]==strings2[j-1]){
- dynamicp[i][j]=dynamicp[i-1][j-1]+1;
- }
- else{
- dynamicp[i][j]=max(dynamicp[i-1][j],dynamicp[i][j-1]);
- }
- }
- }
- return dynamicp[m1][n1];
- }
- int main() {
- string strings1;
- string strings2;
- cin>>strings1;
- cin>>strings2;
- int common_lcs = lcs_dp(strings1, strings2);
- cout << common_lcs << endl;
- return 0;
- }
[text] 1111111
Viewer
Editor
You can edit this paste and save as new:
File Description
- 1111111
- Paste Code
- 24 Mar-2023
- 846 Bytes
You can Share it: