【leetcode-python-9】1441. 用栈操作构建数组
渣渣原始版(42.86%)
用了int转换,可能比较慢吧。
class Solution(object):
def buildArray(self, target, n):
"""
:type target: List[int]
:type n: int
:rtype: List[str]
"""
s = []
for i in range(1, int(target[-1])+1):
if i in target:
s.append("Push")
else:
s.append("Push")
s.append("Pop")
return s
参考大佬版(73.47%)
每次pop一下,可以当作提前结束的依据。
注:参考题解区天才PK无敌思路。
class Solution(object):
def buildArray(self, target, n):
"""
:type target: List[int]
:type n: int
:rtype: List[str]
"""
s = []
for i in range(1, n+1):
if target:
if i in target:
s.append("Push")
target.pop(0)
else:
s.append("Push")
s.append("Pop")
else:
break
return s
参考大佬改进版(88.27%)
用collections中的deque改进了一下。
注:参考题解区天才PK无敌思路。
class Solution(object):
def buildArray(self, target, n):
"""
:type target: List[int]
:type n: int
:rtype: List[str]
"""
from collections import deque
s = []
target = deque(target)
for i in range(1, n+1):
if target:
if i in target:
s.append("Push")
target.popleft()
else:
s.append("Push")
s.append("Pop")
else:
break
return s
新手入坑,多多包涵~~