314. Distinct Subsequences II

HardDynamic Programming

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.)

Examples

Input: abc

Output: 7

Explanation: All 3 characters are distinct, so every non-empty subset is a distinct subsequence: "a", "b", "c", "ab", "ac", "bc", "abc" = 7.

Constraints

  • 1 <= s.length <= 2000
  • s consists of lowercase English letters.
Loading...

Run checks all cases above. Submit evaluates all test cases.