903. Valid Permutations for DI Sequence
We are given S, a length n string of characters from the set {‘D’, ‘I’}. (These letters stand for “decreasing” and “increasing”.)
A valid permutation is a permutation P[0], P[1], …, P[n] of integers {0, 1, …, n}, such that for all i:
If S[i] == ‘D’, then P[i] > P[i+1], and; If S[i] == ‘I’, then P[i] < P[i+1]. How many valid permutations are there? Since the answer may be large, return your answer modulo 10^9 + 7.
Input: “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)
就是输入一个字符串,字符串的长度 len 再 +1 就是数组长度,数组数是 [0, len]
的排列,'D'
表示这个位置的数比后边小,'I'
表示这个位置的数比后边的数大。
机试的时候没有什么思路,暴力只能过很少,所以在这里总结一下。
DP 的解法还是没看懂,看懂了在记录吧= =。