LONGEST COMMON
SUBSEQUENCE UISNG DYNEMIC PROGRAMMING
#include<iostream>
#include<string>
using namespace std;
int longestCommonSubsequece(string str1,
string str2, int len1, int len2)
{
   
int i, j;
          int
LCS[len1+1][len2+1];
   
for(i=0;i<=len1;i++)
       
LCS[i][0]=0;    //empty str2
   
for(j=0;j<=len2;j++)
       
LCS[0][j]=0;   //empty str1    for(i=1;i<=len1;i++)
    {
       
for(j=1;j<=len2;j++)
       
{
           
if(str1[i-1]==str2[j-1])
           
{
                LCS[i][j]=1+LCS[i-1][j-1];
           
}
                      else
           
{
               
LCS[i][j]=max(LCS[i-1][j],LCS[i][j-1]);
           
}
       
}
    }
          return
LCS[len1][len2];
}
int main()
{
   
string str1,str2;
   
cout<<"Enter first string  
";
   
getline(cin, str1);
   
cout<<"Enter second string  
";
   
getline(cin, str2);
   
int len1=str1.length();  //length
of str1 
   
int len2=str2.length();  //length
of str2 
   
cout<<"Length of longest common subsequence is
"<<longestCommonSubsequece(str1,str2,len1,len2);
   
cout<<endl;
   
return 0;
}
OUTPUT

 
No comments:
Post a Comment