如何使用取自array1的元素作为对array2的索引?

问题描述 投票:0回答:1

这是功能:我想将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]
python-3.x dynamic-arrays
1个回答
0
投票

代码的问题是您误解了'^'运算符。我是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]
© www.soinside.com 2019 - 2024. All rights reserved.