225.用队列实现栈

2020-03-17  本文已影响0人  等不了天明等时光

解题思路

1、队列与栈的区别:
队列是先入队元素先出队,后入队元素后出队;栈是先入栈元素后出栈,后入栈元素先出栈。
2、在python中用列表list来模拟队列,append()函数可以在list末尾添加元素,pop(i)函数可以删除第(i+1)个元素。
3、主要步骤:
1)首先用列表list初始化一个队列:self.q = []
2)元素入栈:self.q.append()
3)移除栈顶元素:即最新添加的末尾元素self.q[-1],获取它的值然后删除它
4)获取栈顶元素:即最新添加的末尾元素self.q[-1]
5)判断栈是否为空:根据list中有无元素来判断,返回True或False
注:这里加了判断栈是否为空的操作,以防万一。

代码

class MyStack:

    def __init__(self):
        """
        Initialize your data structure here.
        """
        self.q = []


    def push(self, x: int) -> None:
        """
        Push element x onto stack.
        """
        self.q.append(x)


    def pop(self) -> int:
        """
        Removes the element on top of the stack and returns that element.
        """
        # if len(self.q) != 0:
        #     temp = self.q[-1]
        #     del self.q[-1]
        #     return temp
        # else:
        #     return Fasle
        return self.q.pop(-1)



    def top(self) -> int:
        """
        Get the top element.
        """
        if len(self.q) != 0:
            return self.q[-1]
        else:
            return False


    def empty(self) -> bool:
        """
        Returns whether the stack is empty.
        """
        if len(self.q) == 0:
            return True
        else:
            return False



# Your MyStack object will be instantiated and called as such:
# obj = MyStack()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.top()
# param_4 = obj.empty()
上一篇下一篇

猜你喜欢

热点阅读