java.lang.Object
g0901_1000.s0903_valid_permutations_for_di_sequence.Solution

public class Solution extends Object
903 - Valid Permutations for DI Sequence\. Hard You are given a string `s` of length `n` where `s[i]` is either: * `'D'` means decreasing, or * `'I'` means increasing. A permutation `perm` of `n + 1` integers of all the integers in the range `[0, n]` is called a **valid permutation** if for all valid `i`: * If `s[i] == 'D'`, then `perm[i] > perm[i + 1]`, and * If `s[i] == 'I'`, then `perm[i] < perm[i + 1]`. Return _the number of **valid permutations**_ `perm`. Since the answer may be large, return it **modulo** 109 + 7. **Example 1:** **Input:** s = "DID" **Output:** 5 **Explanation:** The 5 valid permutations of (0, 1, 2, 3) are: (1, 0, 3, 2) (2, 0, 3, 1) (2, 1, 3, 0) (3, 0, 2, 1) (3, 1, 2, 0) **Example 2:** **Input:** s = "D" **Output:** 1 **Constraints:** * `n == s.length` * `1 <= n <= 200` * `s[i]` is either `'I'` or `'D'`.
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • numPermsDISequence

      public int numPermsDISequence(String s)