1442. Count Triplets That Can Form Two Arrays of Equal XOR

MD ARIFUL HAQUE - May 30 - - Dev Community

1442. Count Triplets That Can Form Two Arrays of Equal XOR

Medium

Given an array of integers arr.

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

Let's 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 and k) Where a == b.

Example 1:

  • Input: arr = [2,3,1,6,7]
  • Output: 4
  • Explanation: The triplets are (0,1,2), (0,2,2), (2,3,4) and (2,4,4)

Example 2:

  • Input: arr = [1,1,1,1,1]
  • Output: 10

Constraints:

  • 1 <= arr.length <= 300
  • 1 <= arr[i] <= 108

Solution:

class Solution {

    /**
     * @param Integer[] $arr
     * @return Integer
     */
    function countTriplets($arr) {
        $ans = 0;
        $xors = [0];
        $prefix = 0;

        foreach ($arr as $key => $a) {
            $prefix ^= $a;
            $xors[] = $prefix;
        }

        for ($j = 1; $j < count($arr); $j++) {
            for ($i = 0; $i < $j; $i++) {
                $xors_i = $xors[$j] ^ $xors[$i];
                for ($k = $j; $k < count($arr); $k++) {
                    $xors_k = $xors[$k + 1] ^ $xors[$j];
                    if ($xors_i == $xors_k) {
                        $ans += 1;
                    }
                }
            }
        }

        return $ans;
    }
}
Enter fullscreen mode Exit fullscreen mode

Contact Links

If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!

If you want more helpful content like this, feel free to follow me:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player