期中練習 佇列的使用

2021-10-14 01:52:05 字數 947 閱讀 8404

題目描述

給定乙個只有正整數的佇列,有乙個計數器,計數器的值一開始為0。執行下面的操作: 如果佇列長度為1,則輸出計數器的值並結束程式; 如果佇列長度大於1,則將佇列的前兩個數出隊,計算它們的異或值,並在隊尾放入該異或值,同時讓計數器加上該值。 請模擬上面的流程,並輸出最後的結果。

輸入

輸入資料共2行。 第一行為乙個整數n,表示這個序列的長度。 第二行為乙個正整數序列,各數之間用乙個空格分隔。保證該序列的長度大於1。

輸出

輸出資料共一行,為乙個正整數,表示計數器最後的值。

這一題主要是利用了佇列的知識

1)迴圈時利用了while true 語句,while true 語句中一定要有結束該迴圈的break語句,否則會一直迴圈下去的。因為沒有false的條件

2)異或值的公式為a^b

3)下圖都是兩個pop(0)是因為去掉第乙個index=0的元素以後列表整體往前挪了

n =

int(

input()

)a1 =

input()

.split(

)a =

r =0

for i in a1:

int(i)

)while

true:if

len(a)==1

:print

(r)break

#一定要有break語句

else

: b = a[0]

^a[1

] a.pop(0)

a.pop(0)

#是兩個pop(0)是因為去掉第乙個index=0的元素以後列表整體往前挪了

r = r + b

期中練習 查詢單詞

題目描述 給定乙個由n個單詞 可能重複 組成的單詞表,進行m次查詢,每次查詢乙個單詞s,求該單詞在單詞表中的數量。如果查詢的單詞不在單詞表裡,則輸出not found 輸入 包含n m 1行 第一行為兩個整數n,m,表示單詞表中單詞數量和查詢次數 接下來n行,每行乙個單詞表內的單詞w 接下來m行,每...

演算法期中練習 1001 最小差

description 對於乙個整數數列a 0 a 1 a n 1 要求在其中找兩個數,使得它們的差的絕對值最小.2 n 100,1000 a i 1000.example 例1 當a 返回4.例2 當a 返回0.請實現下面solution類中計算mindifference a 的函式,返回值為能得...

練習 瘋狂佇列

小易老師是非常嚴厲的,它會要求所有學生在進入教室前都排成一列,並且他要求學生按照身高不遞減的順序排列。有一次,n個學生在列隊的時候,小易老師正好去衛生間了。學生們終於有機會反擊了,於是學生們決定來一次瘋狂的佇列,他們定義乙個佇列的瘋狂值為每對相鄰排列學生身高差的絕對值總和。由於按照身高順序排列的佇列...