【面试题9】用两个栈实现队列

【面试题9】用两个栈实现队列_第1张图片
思路分析:Python中实现一个队列的push和pop比较简单,但是题目中的要求是用两个栈来实现队列,意思就是只能用stack的push和pop构建队列的push和pop,不能有其他的操作。因此,两个栈的话考虑队列和栈出入顺序是相反的,stack2相当于一个临时保存的地方。第一次循环,取出第一个元素,第二次循环重新复原。
Python题解

class Solution:
    def __init__(self):
        self.stack1 = []
        self.stack2 = []
    def push(self, node):
        self.stack1.append(node)
    def pop(self):
        if not self.stack2:
            while self.stack1:
                self.stack2.append(self.stack1.pop())
        cur = self.stack2.pop()
        return cur

考查

  • 考查对栈和队列的理解
  • 考查写与模板相关代码的能力
  • 考查分析复杂问题的能力。通过具体的例子分析问题,通过画图的手段把抽象的问题形象化,从而解决相对复杂的问题。

你可能感兴趣的:(朱滕威的面试之路)