請編寫乙個程式,按公升序對棧進行排序(即最大元素位於棧頂),要求最多只能使用乙個額外的棧存放臨時資料,但不得將元素複製到別的資料結構中。
給定乙個int numbers(c++中為vector),其中第乙個元素為棧頂,請返回排序後的棧。請注意這是乙個棧,意味著排序過程中你只能訪問到第乙個元素。
測試樣例:
[1,2,3,4,5]
返回:[5,4,3,2,1]
定義乙個help棧,用於存放要排序的數字。
class
twostacks:
deftwostackssort
(self, numbers):
# write code here
stack_help =
for i in range(len(numbers)):
elem = numbers[0]
numbers.pop(0)
if len(stack_help) == 0:
else:
count = 0
while len(stack_help) > 0
and elem > stack_help[-1]:
count += 1
stack_help.pop(-1)
while count > 0:
count -= 1
numbers.pop(-1)
return stack_help
nowcoder 雙棧佇列
編寫乙個類,只能用兩個棧結構實現佇列,支援佇列的基本操作 push,pop 給定乙個操作序列ope及它的長度n,其中元素為正數代表push操作,為0代表pop操作,保證操作序列合法且一定含pop操作,請返回pop的結果序列。測試樣例 1,2,3,0,4,0 6 返回 1,2 用兩個棧實現佇列。cla...
1002 雙棧排序
description tom最近在研究乙個有趣的排序問題。如圖所示,通過2個棧s1和s2,tom希望借助以下4種操作實現將輸入序列公升序排序。操作a 如果輸入序列不為空,將第乙個元素壓入棧s1 操作b 如果棧s1不為空,將s1棧頂元素彈出至輸出序列 操作c 如果輸入序列不為空,將第乙個元素壓入棧s...
雙棧排序練習
題目 請編寫乙個程式,按公升序對棧進行排序 即最大元素位於棧頂 要求最多只能使用乙個額外的棧存放臨時資料,但不得將元素複製到別的資料結構中。給定乙個int numbers c 中為vector 其中第乙個元素為棧頂,請返回排序後的棧。請注意這是乙個棧,意味著排序過程中你只能訪問到第乙個元素。解題思路...