问题描述:
给定一个整数数组arr,我们需要计算满足以下条件的三元组 (i, j, k) 的数目:
- 0 <= i < j <= k < arr.length
- arr[i] ^ arr[i+1] ^ … ^ arr[j-1] == arr[j] ^ arr[j+1] ^ … ^ arr[k]
其中^表示异或运算。
解决思路:
要计算满足条件的三元组数目,我们可以使用前缀异或数组的概念来解决这个问题。前缀异或数组prefixXor存储了从数组的开始到当前位置的所有元素的异或结果。
首先,我们需要遍历数组arr并计算前缀异或数组prefixXor。接下来,我们可以使用三重循环来枚举所有可能的三元组(i, j, k)。对于每个三元组,我们可以使用前缀异或数组来计算两个子数组的异或值,然后判断它们是否相等。
实现代码如下:
def countTriplets(arr):