Advertisement
adityaraj5200

distinct-subsequences

Jun 5th, 2025
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int numDistinct(string s, string t) {
  4.         n = s.length();
  5.         m = t.length();
  6.         dp = vector<vector<int>>(n+1,vector<int>(m+1,-1));
  7.         if(n<m) return 0;
  8.  
  9.         return solve(0,0,s,t);;
  10.     }
  11. private:
  12.     int n,m;
  13.     vector<vector<int>> dp;
  14.    
  15.     int solve(int i,int j,string& s,string& t){
  16.         if(i==n){
  17.             return j==m;
  18.         }
  19.  
  20.         if(dp[i][j] != -1) {
  21.             return dp[i][j];
  22.         }
  23.  
  24.         int take = 0;
  25.         int leave = 0;
  26.         if(j<m && s[i]==t[j]){
  27.             take = solve(i+1,j+1,s,t);
  28.             leave = solve(i+1,j,s,t);
  29.         }
  30.         else{
  31.             leave = solve(i+1,j,s,t);
  32.         }
  33.  
  34.         return dp[i][j] = take + leave;
  35.     }
  36. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement