https://leetcode.com/problems/xor-queries-of-a-subarray
※ 引述《enmeitiryous (enmeitiryous)》之铭言:
: 题目: XOR Queries of a Subarray
: 给你一个整数vector:arr,并给你一个2D vector: queries,你需要回传一个整数vector
: ans,其中ans[i]代表为arr从quieries[i][0]的位置一路xor到queries[i][1]的位置的值
: ,若queries[i]的两个值相等是回传arr[queries[i][0]]。
: 思路:
: 我们可以先做一个prefix xor的vector,其中prefix_xor[i]代表arr[0]一路xor到arr[i]
: 的值,任意的[i to j]的xor值(i!=0)就是prefix_xor[j] xor prefix_xor[i-1]
思路:看大师的思路
Python Code:
class Solution:
def xorQueries(self,arr:List[int],queries:List[List[int]]) -> List[int]:
prefix_arr = {0: arr[0]}
for i in range(1, len(arr)):
prefix_arr[i] = prefix_arr[i-1] ^ arr[i]
return [
prefix_arr[q[1]] ^ (prefix_arr[q[0]-1] if q[0] != 0 else 0)
for q in queries
]
原本用 eval 想当然耳遇到 TLE 了
不过为啥
[eval(' ^ '.join(f'arr[{n}]' for n in range(q[0], q[1]+1))) for q in queries]
在电脑可以 提交却失败了 是 Python 版本问题吗
电脑是 3.12.4 网站是 3.11.10