Distinct Subsequences II⚓︎
Description⚓︎
Given a string s
, return the number of distinct non-empty subsequences of s
. Since the answer may be very large, return it modulo 10^9 + 7
.
A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., "ace"
is a subsequence of "abcde"
while "aec"
is not.
Example 1:
Example 2:
Example 3:
Constraints:
1 <= s.length <= 2000
s
consists of lowercase English letters.
Solution⚓︎
See reference (Chinese).
- Time complexity: \(O(N)\);
- Space complexity: \(O(26)\).