Distinct Subsequences II

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 formed from the original string by deleting some characters, possibly none, without disturbing the relative positions of the remaining characters. For example, "ace" is a subsequence of "abcde", while "aec" is not.

Example 1
Inputs = "abc"
Output7
The 7 distinct subsequences are "a", "b", "c", "ab", "ac", "bc", and "abc".
Example 2
Inputs = "aba"
Output6
The 6 distinct subsequences are "a", "b", "ab", "aa", "ba", and "aba".

Constraints

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

Asked at 2 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate