Проблема с вашим кодом в том, что вы неправильно понимаете оператор '^'. Я полагаю, что вы думаете, что это делает возведение в степень, где фактически используется для выполнения операции Binary (XOR) . Python использует **
для возведения в степень.
См. Это:
Binary XOR(^)
It performs bit by bit XOR(exclusive-OR) on the two values. Here, XOR-ing 10(2) and 11(3) results in 01(1).
>>> 2^3
Итак, вам нужно изменить оператор следующим образом, и вы можете использовать индекс в качестве элементов в массив.
def dynamicArray(n, queries):
# Write your code here
lastAnswer=0
s0=[]
s1=[]
l=len(queries)
for i in range(l):
qtype=queries[i][0]
x=queries[i][1]
y=queries[i][2]
if qtype==1:
if ((x**lastAnswer)%2==0):
s0.append(y)
elif ((x**lastAnswer)%2==1):
s1.append(y)
if qtype==0:
if ((x**lastAnswer)%2==0):
return lastAnswer==s0[y]
elif ((x**lastAnswer)%2==1):
return lastAnswer==s1[y]