Skip to content

Latest commit

 

History

History
73 lines (49 loc) · 1.98 KB

942-di-string-match.md

File metadata and controls

73 lines (49 loc) · 1.98 KB

942. DI String Match - 增减字符串匹配

给定只含 "I"(增大)或 "D"(减小)的字符串 S ,令 N = S.length

返回 [0, 1, ..., N] 的任意排列 A 使得对于所有 i = 0, ..., N-1,都有:

  • 如果 S[i] == "I",那么 A[i] < A[i+1]
  • 如果 S[i] == "D",那么 A[i] > A[i+1]

 

示例 1:

输出:"IDID"
输出:[0,4,1,3,2]

示例 2:

输出:"III"
输出:[0,1,2,3]

示例 3:

输出:"DDI"
输出:[3,2,0,1]

 

提示:

  1. 1 <= S.length <= 1000
  2. S 只包含字符 "I" 或 "D"

题目标签:Math

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
python3 92 ms 14.3 MB
class Solution:
    def diStringMatch(self, S: str) -> List[int]:
        A = [x for x in range(len(S) + 1)]
        res = []
        p, q = 0, len(S)
        for i in range(len(S)):
            if S[i] == 'I':
                res.append(A[p])
                p += 1
            else:
                res.append(A[q])
                q -= 1
        res.append(A[p])
        return res