这是功能:我想将y作为数组s0和s1的索引。我怎么做?该代码有什么问题?
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]
代码的问题是您误解了'^'运算符。我是assunimg,您在想它做幂运算,实际上是用来做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]