每日一题,增减字符串匹配
Posted Roam-G
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题,增减字符串匹配相关的知识,希望对你有一定的参考价值。
由范围 [0,n]
内所有整数组成的 n + 1
个整数的排列序列可以表示为长度为 n
的字符串 s
,其中:
- 如果
perm[i] < perm[i + 1]
,那么s[i] == 'I'
- 如果
perm[i] > perm[i + 1]
,那么s[i] == 'D'
给定一个字符串 s
,重构排列 perm
并返回它。如果有多个有效排列perm,则返回其中 任何一个 。
示例 1:
输入:s = "IDID" 输出:[0,4,1,3,2]
示例 2:
输入:s = "III" 输出:[0,1,2,3]
示例 3:
输入:s = "DDI" 输出:[3,2,0,1]
class Solution:
def diStringMatch(self,s:str)->List[int]:
lo = 0
hi = n = len(s)
perm =[0]*(n+1)
for i ,ch in enumerate(s):
if ch =='I':
perm[i] = lo
lo+=1
else:
perm[i] = hi
hi-=1
perm[n] = lo
return perm
以上是关于每日一题,增减字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 942. 增减字符串匹配 / 1728. 猫和老鼠 II(博弈,不会) / 449. 序列化和反序列化二叉搜索树
[LeetCode] 942. DI String Match 增减DI字符串匹配