Advertisement
knakul853

Untitled

Jul 24th, 2020
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<vector<int>>dp;
  4.     int longestCommonSubsequence(string s1, string s2) {
  5.        
  6.         int n = s1.size();
  7.         int m = s2.size();
  8.        
  9.        dp = vector<vector<int>>(n+1 , vector<int>(m+1 , -1));
  10.         for(int i=0;i<=n;i++)
  11.         {
  12.             for(int j=0;j<=m;j++)
  13.             {
  14.                 dp[i][j]=-1;
  15.             }
  16.         }
  17.  
  18.        
  19.         solve(s1,s2,n,m);
  20.         return dp[n][m];
  21.        
  22.     }
  23.    
  24.     int solve(string& s1 , string& s2 ,int n,int m)
  25.     {
  26.        
  27.         if(n==0 || m==0)return 0;
  28.         if(dp[n][m]!=-1)return dp[n][m];
  29.        
  30.         if(s1[n-1] == s2[m-1]){
  31.             dp[n][m] = 1 + solve(s1,s2,n-1,m-1);
  32.         }
  33.         else{
  34.            
  35.             dp[n][m] = max(solve(s1,s2,n-1,m) , solve(s1,s2,n,m-1));
  36.         }
  37.        
  38.         return dp[n][m];
  39.     }
  40. };
  41.  
  42. class Solution {
  43. public:
  44.     int longestCommonSubsequence(string s1, string s2) {
  45.        
  46.         int n = s1.size();
  47.         int m = s2.size();
  48.        
  49.         int dp[n+1][m+1];
  50.         for(int i=0;i<=n;i++)
  51.         {
  52.             for(int j=0;j<=m;j++)
  53.             {
  54.                 dp[i][j]=0;
  55.             }
  56.         }
  57.  
  58.        
  59.         for(int i=1;i<=n;i++)
  60.         {
  61.             for(int j=1;j<=m;j++)
  62.             {
  63.                 if(s1[i-1]==s2[j-1])
  64.                 {
  65.                     dp[i][j] = max({dp[i][j],dp[i-1][j-1]})+1;
  66.                 }
  67.                 else {
  68.                     dp[i][j] = max({dp[i-1][j],dp[i][j-1],dp[i][j]});
  69.                 }
  70.             }
  71.         }
  72.        
  73.        
  74.         return dp[n][m];
  75.        
  76.     }
  77. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement