Problem Statement:
Given two strings s and t, return the number of distinct subsequences of s which equals t.
The test cases are generated so that the answer fits on a 32-bit signed integer.
Example 1:
Input: s = “rabbbit”, t = “rabbit”
Output: 3
Explanation:
As shown below, there are 3 ways you can generate “rabbit” from s.
Solution:
1. Recursion and Memoization:
2. Tabulation
3. Space optimization [2-D array]
4. Space optimization [1-D array]