题目描述:
题解:用栈模拟
创建一个栈astack(用list模拟),一个flag记录匹配到popped数组中的位置,将pushed中的每个数字依次压入astack,然后判断,如果当前栈顶的元素与popped数组flag位置匹配,则弹出栈顶元素,如果最终flag值与popped长度相同,则匹配,否则不匹配。
class Solution: def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool: astack = [] flag = 0 for num in pushed: astack.append(num) while flag<len(popped) and len(astack)>0 and astack[-1]==popped[flag]: astack.pop() flag = flag+1 if flag==len(popped): return True return False