python-3.x - 如何使用从array1中获取的元素作为array2的索引?
问题描述
这是函数:我想将 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]
解决方案
您的代码的问题是您误解了 '^' 运算符。我假设您认为它进行幂运算,实际上它用于进行二进制(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]
推荐阅读
- sql - 如何在 SQL 中将小时数划分为下一个工作日?
- javascript - 通过按钮单击隐藏/删除 ajax 调用中的表行
- matlab - 计算自相关函数集,然后求和
- python - 如何在 folium 地图的工具提示上显示 JSON 数据?
- c# - RedirectStandardOutput 显示进程关闭后的结果 C#(不逐行显示输出)
- c# - 用多个表填充列表对象
- javascript - AWS S3:如何检索存储桶活动?
- java - 打开 onClick 按钮一个带有画布绘图的新活动
- github - 允许管理员在不受 github 保护的分支上的 pull request 批准的情况下合并
- php - 如何从 3 位 php 变量中打印单独的数字?