g0101_0200.s0115_distinct_subsequences.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-kotlin Show documentation
Show all versions of leetcode-in-kotlin Show documentation
Kotlin-based LeetCode algorithm problem solutions, regularly updated
115\. Distinct Subsequences
Hard
Given two strings `s` and `t`, return _the number of distinct subsequences of `s` which equals `t`_.
A string's **subsequence** is a new string formed from the original string by deleting some (can be none) of the characters without disturbing the remaining characters' relative positions. (i.e., `"ACE"` is a subsequence of `"ABCDE"` while `"AEC"` is not).
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. **rabb**b**it**
**ra**b**bbit**
**rab**b**bit**
**Example 2:**
**Input:** s = "babgbag", t = "bag"
**Output:** 5
**Explanation:** As shown below, there are 5 ways you can generate "bag" from s. **ba**b**g**bag
**ba**bgba**g**
**b**abgb**ag**
ba**b**gb**ag**
babg**bag**
**Constraints:**
* `1 <= s.length, t.length <= 1000`
* `s` and `t` consist of English letters.