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
:
S[i] == ‘D‘
, then?P[i] > P[i+1]
, and;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
.
Example 1:
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)
Note:
1 <= S.length <= 200
S
?consists only of characters from the set?{‘D‘, ‘I‘}
.
Github 同步地址:
https://github.com/grandyang/leetcode/issues/CHANGE_ME
参考资料:
https://leetcode.com/problems/valid-permutations-for-di-sequence/
LeetCode All in One 题目讲解汇总(持续更新中...)
[LeetCode] 903. Valid Permutations for DI Sequence DI序列的有效排列
原文:https://www.cnblogs.com/grandyang/p/11094525.html