Count Triplets That Can Form Two Arrays of Equal XOR

Given an array of integers arr.

We want to select three indices i, j, and k where (0 <= i < j <= k < arr.length).

Define a and b as follows:

  • a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]
  • b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]

Note that ^ denotes the bitwise-xor operation.

Return the number of triplets (i, j, k) where a == b.

Example 1
Inputarr = [2,3,1,6,7]
Output4
The triplets are (0,1,2), (0,2,2), (2,3,4), and (2,4,4).
Example 2
Inputarr = [1,1,1,1,1]
Output10
There are 10 valid triplets where the two defined XOR values are equal.

Constraints

  • 1 <= arr.length <= 300
  • 1 <= arr[i] <= 10^8

Asked at 2 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate