增减字符串匹配

一、题目描述

 给定只含 "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]

扫描二维码关注公众号,回复: 5066142 查看本文章

 示例 3:

  输出:"DDI"

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

class Solution:  
    def diStringMatch(self, S):
        """
        :type S: str
        :rtype: List[int]
        """
        left = 0
        right = len(S)
        result = []
        for i in S:
            if i == 'I':
                result.append(left)
                left += 1
            elif i == 'D':
                result.append(right)
                right -= 1
        result.append(right)
        return result

  

 

猜你喜欢

转载自www.cnblogs.com/always-fight/p/10320129.html