#+ANKI_DECK: study_deck_02 * TODO 0115. Distinct Subsequences :hard: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0115. Distinct Subsequences][0115. Distinct Subsequences]] :END: 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:* #+begin_src Input: s = "rabbbit", t = "rabbit" Output: 3 Explanation: As shown below, there are 3 ways you can generate "rabbit" from s. rabbbit rabbbit rabbbit #+end_src *Example 2:* #+begin_src Input: s = "babgbag", t = "bag" Output: 5 Explanation: As shown below, there are 5 ways you can generate "bag" from s. babgbag babgbag babgbag babgbag babgbag #+end_src *Constraints:* - ~1 <= s.length, t.length <= 1000~ - ~s~ and ~t~ consist of English letters. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def numDistinct(self, s: str, t: str) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int numDistinct(string s, string t) { } }; #+end_src