解题思路:
- 遇到I表示下一个值比当前值大,那当前值取候选值中最小的即可;
- 遇到D表示下一个值比当前值小,那当前值取剩余值中最大的即可;
- 维护双指针
start,end
表示最小和最大的候选值。
Python3代码:
class Solution:
def diStringMatch(self, S: str) -> List[int]:
start,end = 0,len(S)
res = []
for s in S:
if s == 'I':
res.append(start)
start+=1
else:
res.append(end)
end-=1
res.append(start)
return res
网友评论