Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ca19778

Browse files
authored
Update 修正 0225.用队列实现栈 python代码
1 parent e48b94f commit ca19778

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

‎problems/0225.用队列实现栈.md‎

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -454,13 +454,34 @@ class MyStack:
454454

455455
def top(self) -> int:
456456
"""
457+
写法一:
457458
1. 首先确认不空
458-
2. 我们仅有in会存放数据,所以返回第一个即可
459+
2. 我们仅有in会存放数据,所以返回第一个即可(这里实际上用到了栈)
460+
写法二:
461+
1. 首先确认不空
462+
2. 因为队列的特殊性,FIFO,所以我们只有在pop()的时候才会使用queue_out
463+
3. 先把queue_in中的所有元素(除了最后一个),依次出列放进queue_out
464+
4. 交换in和out,此时out里只有一个元素
465+
5. 把out中的pop出来,即是原队列的最后一个,并使用temp变量暂存
466+
6. 把temp追加到queue_in的末尾
459467
"""
468+
# 写法一:
469+
# if self.empty():
470+
# return None
471+
472+
# return self.queue_in[-1] # 这里实际上用到了栈,因为直接获取了queue_in的末尾元素
473+
474+
# 写法二:
460475
if self.empty():
461476
return None
477+
478+
for i in range(len(self.queue_in) - 1):
479+
self.queue_out.append(self.queue_in.popleft())
462480

463-
return self.queue_in[-1]
481+
self.queue_in, self.queue_out = self.queue_out, self.queue_in
482+
temp = self.queue_out.popleft()
483+
self.queue_in.append(temp)
484+
return temp
464485

465486

466487
def empty(self) -> bool:
@@ -488,9 +509,19 @@ class MyStack:
488509
return self.que.popleft()
489510

490511
def top(self) -> int:
512+
# 写法一:
513+
# if self.empty():
514+
# return None
515+
# return self.que[-1]
516+
517+
# 写法二:
491518
if self.empty():
492519
return None
493-
return self.que[-1]
520+
for i in range(len(self.que)-1):
521+
self.que.append(self.que.popleft())
522+
temp = self.que.popleft()
523+
self.que.append(temp)
524+
return temp
494525

495526
def empty(self) -> bool:
496527
return not self.que

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /