[英]Wrong Answer python3.6
您將獲得一組S和Q查詢。 最初,S為空。 在每個查詢中:
您會得到一個正整數X。
您應該將X插入S。
對於此查詢之前的每個y∈S,以使y≠X,還應將y⊕X插入S中(⊕表示XOR運算)。 然后,您應該找到兩個值E和O:在二進制表示形式中,S的元素個數分別為偶數1和奇數1。
我曾嘗試將問題分解為較小的子問題,但由於輸入量較大且列表較大,因此似乎已經超過了時間。 對代碼的任何建議和進一步的優化都將非常有幫助。我已經使用了set,但是預期的輸出與我的輸出不同。 在解決方案代碼中我出了錯的任何建議。
s=set()
def fun(n,q):
c=0
cc=0
s.add(n)
for k in range(len(list(s))):
if list(s)[k]!=n:
s.add((list(s)[k])^n)
for k in s:
if bin(k)[2::].count('1')%2==0:
c+=1
else:
cc+=1
print(c,cc)
for _ in range(int(input())):
q=int(input())
for j in range(q):
n=int(input())
fun(n,q)
輸入示例:
1
3
4
2
7
示例輸出:
0 1
1 2
3 4
我認為您是在列表中插入重復值。 修復它,您會很高興。
解決方案和參考: -https : //whitefox-89ea6.firebaseapp.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.