题目:
有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。
对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。
并返回一个包含给定查询 queries 所有结果的数组。
解答:
class Solution:
def xorQueries(self, arr: List[int], queries: List[List[int]]) -> List[int]:
n=len(arr)
tmp=arr[0]
encode=[tmp]
for i in range(1,n):
tmp^=arr[i]
encode.append(tmp)
res=[]
for val in queries:
start=val[0]
end=val[1]
if start==end:
res.append(arr[end])
elif start==0:
res.append(encode[end])
else:
res.append(encode[end]^encode[start-1])
return res