#!/usr/bin/python # -*- coding: utf-8 -*- # Author: Yu Zhou # **************** # Descrption: # 225. Implement Stack using Queues # **************** # æè·¯ï¼ # popæ¹ç¨çæè·¯ï¼ # 卿¯æ¬¡popçæ¶åï¼å°æ´ä¸ªqueueç§»å¨ä¸éãè¿é注æçæ¯ï¼ç§»å¨Length - 1次就å¤äº # å ä¸ºå¨æä»¬æç»è¿æ¯Popæstackæåä¸ä¸ªå¼ï¼ä¹å°±æ¯å¨ç§»å¨Length - 1次以åç第ä¸ä¸ªå¼ # topæ¹ç¨çæè·¯ï¼ # åpopæ¥è¿ï¼è¿é注æçæ¯ï¼å¨è¿è¡ä¸æ¬¡å®æ´çæ¢ä½ï¼å¨æå䏿¬¡æ¢ä½åï¼è®°å¾ætempä¿å䏿¥ # ç¨äºä¹åè¿å # ä¾å¦ [3,4,5]ï¼ è¿è¿ä¸æ¬¡éåï¼ [4,5,3] ä¸¤æ¬¡ï¼ [5,3,4] # è¿ä¸ªæ¶åè¦ä¿å5,å 为5æ¯top valueï¼åå°Queueåå忥ç [3,4,5] # **************** # Final Solution * # **************** class MyStack(object): def __init__(self): self.queue = [] def push(self, x): self.queue.append(x) def pop(self): if self.queue: for _ in xrange(len(self.queue) - 1): self.queue.append(self.queue.pop(0)) return self.queue.pop(0) else: return [] def top(self): temp = 0 for _ in xrange(len(self.queue)): temp = self.queue.pop(0) self.queue.append(temp) return temp def empty(self): return False if self.queue else True