老鼠出动顺序(python、单调栈)

张开发
2026/5/4 17:19:47 15 分钟阅读
老鼠出动顺序(python、单调栈)
输入1 2 3 2 3 4 5输出3 2 5 4 3 2 1思路单调递增栈依次入栈遇到比栈顶小的元素栈顶元素出栈。最后再处理栈弹空栈内元素。#老鼠出洞顺序,其实就是单调栈当前元素小于栈顶时出栈 def f(nums): stack[] stack.append(nums[0]) res[] for i in range(1,len(nums)): while stack and nums[i]stack[-1]: res.append(stack.pop()) stack.append(nums[i]) while stack: res.append(stack.pop()) res .join(map(str,res)) print(res) def main(): lineinput().strip() numslist(map(int,line.split())) f(nums) if __name____main__: main()

更多文章