leetcode 484. Find Permutation

xiaoxiao2021-02-28  80

leetcode 484. Find Permutation 

贪心算法全靠细心,思路简单:

初始: S[0] = 'I', 设为1。cur 变量用来记录前面最大的值(因为所求的为置换关系),后续有多少个D,则当前写入最大的值,后续依次减小就可以。

class Solution(object): def findPermutation(self, s): """ :type s: str :rtype: List[int] """ res = [] cur = 1 i = 0 while i<len(s): if i==0: if s[i]=='I': cur = 1 res += [cur] else: cur = 0 # res += [cur] # j = (s[j]=='D')?i:(i+1) if s[i]== 'D': j = i else: j = i+1 cntD = 0 while j<len(s) and s[j]=='D': j += 1 cntD += 1 # cntD = j-i cur = cntD + cur + 1 # print(cur) res += [cur] for h in range(cntD): res += [cur- 1 - h] i = j return res

转载请注明原文地址: https://www.6miu.com/read-44923.html

最新回复(0)