All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1901_2000.s1987_number_of_unique_good_subsequences.readme.md Maven / Gradle / Ivy

There is a newer version: 1.24
Show newest version
1987\. Number of Unique Good Subsequences

Hard

You are given a binary string `binary`. A **subsequence** of `binary` is considered **good** if it is **not empty** and has **no leading zeros** (with the exception of `"0"`).

Find the number of **unique good subsequences** of `binary`.

*   For example, if `binary = "001"`, then all the **good** subsequences are `["0", "0", "1"]`, so the **unique** good subsequences are `"0"` and `"1"`. Note that subsequences `"00"`, `"01"`, and `"001"` are not good because they have leading zeros.

Return _the number of **unique good subsequences** of_ `binary`. Since the answer may be very large, return it **modulo** 109 + 7.

A **subsequence** is a sequence that can be derived from another sequence by deleting some or no elements without changing the order of the remaining elements.

**Example 1:**

**Input:** binary = "001"

**Output:** 2

**Explanation:** The good subsequences of binary are ["0", "0", "1"].

The unique good subsequences are "0" and "1". 

**Example 2:**

**Input:** binary = "11"

**Output:** 2

**Explanation:** The good subsequences of binary are ["1", "1", "11"].

The unique good subsequences are "1" and "11".

**Example 3:**

**Input:** binary = "101"

**Output:** 5

**Explanation:** The good subsequences of binary are ["1", "0", "1", "10", "11", "101"].

The unique good subsequences are "0", "1", "10", "11", and "101". 

**Constraints:**

*   1 <= binary.length <= 105
*   `binary` consists of only `'0'`s and `'1'`s.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy