如何使用从 array1 中获取的元素作为 array2 的索引?

how to use an element taken from array1 as index to array2?

这就是 FUNCTION:I 想要将 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]

您的代码存在问题,您误解了“^”运算符。我向您保证您认为它会求幂,而实际上它用于执行 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]