校學(xué)生會要從兩個候選人 A 和 B 中選舉一個會長,每個候選人都有自己的支持方。現(xiàn)在以一個基于輪為過程來進行選舉,在每一輪選舉中,當(dāng)前成員可以禁止另一位成員的選舉權(quán),即讓另一位成員在這一輪和隨后的幾輪中都喪失選舉權(quán)。在選舉過程中一旦有選舉權(quán)的成員都來自同一個陣營,則該陣營勝利。
字母 A 和 B 分別代表兩位候選人,輸入一個字符串代表每個成員的陣營,例如輸入“ABB”,則輸出結(jié)果為 B,即候選人 B 為會長。
說明:第一輪中,第一個成員(A)可以讓第二個成員(B)失去選舉權(quán),第二個成員(B)會被跳過因為他的選舉權(quán)被禁止,第三個成員(B)可以讓第一個成員(A)失去選舉權(quán),因此在第二輪只剩下第三個成員(B)擁有選舉權(quán),則輸出結(jié)果為 B,即候選人 B 為會長。
(1)若輸入“ABABB”,則會長為
A
A
。
(2)實現(xiàn)上述功能的 Python 程序如下,請在橫線處填入合適的代碼。
s=input(“請輸入投票字符串:“)
queA=[“”]*100;queB=[“”]*100
headA=headB=0
tailA=tailB=0
n=len(s)
for i in range(n):
if ①s[i]==“A”
s[i]==“A”
:
queA[tailA]=i
tailA+=1
else:
queB[tailB]=i
tailB+=1
while②headA!=tailA and headB!=tailB
headA!=tailA and headB!=tailB
:
if queA[headA]<queB[headB]:
queA[tailA]=queA[headA]+n
tailA+=1
else:
queB[tailB]=queB[headB]+n
tailB+=1
headA+=1;headB+=1
if ③headA=tailA 或headB!=tailB
headA=tailA 或headB!=tailB
:
print(“B“)
else:
print(“A“)