解法一

异或运算的性质:1442. 形成两个异或相等数组的三元组数目 - 图1
因此连续异或得到0时,中间分隔可以任意选取,得到的三元组均为符合题意的解。

  1. class Solution {
  2. public int countTriplets(int[] arr) {
  3. int ans = 0;
  4. for (int i = 0; i < arr.length - 1; ++i) {
  5. for (int j = i + 1, x = arr[i]; j < arr.length; ++j) {
  6. x ^= arr[j];
  7. if (x == 0) {
  8. ans += j - i;
  9. }
  10. }
  11. }
  12. return ans;
  13. }
  14. }