题目:
Implement Stack using Queues
Implement the following operations of a stack using queues.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- empty() -- Return whether the stack is empty.
- You must use only standard operations of a queue -- which means only
push to back
,peek/pop from front
,size
, andis empty
operations are valid. - Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
- You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).
解答:
class Stack: # initialize your data structure here. def __init__(self): self.stack = [] # @param x, an integer # @return nothing def push(self, x): self.stack.append(x) # @return nothing def pop(self): if len(self.stack) == 0: print 'can not pop from an empty stack !' else: self.stack.pop() # @return an integer def top(self): if len(self.stack) == 0: return None value = self.stack.pop() self.stack.append(value) return value # @return an boolean def empty(self): if len(self.stack) == 0: return True else: return False
心得:
List现在已经可以模拟stack或者sequence, 这里题目明确说明可以使用list, 所以就用list.