2022-03-27 18:27:43 +08:00
< p > Given an array of integers < code > arr< / code > .< / p >
< p > We want to select three indices < code > i< / code > , < code > j< / code > and < code > k< / code > where < code > (0 < = i < j < = k < arr.length)< / code > .< / p >
< p > Let' s define < code > a< / code > and < code > b< / code > as follows:< / p >
< ul >
< li > < code > a = arr[i] ^ arr[i + 1] ^ ... ^ arr[j - 1]< / code > < / li >
< li > < code > b = arr[j] ^ arr[j + 1] ^ ... ^ arr[k]< / code > < / li >
< / ul >
< p > Note that < strong > ^< / strong > denotes the < strong > bitwise-xor< / strong > operation.< / p >
< p > Return < em > the number of triplets< / em > (< code > i< / code > , < code > j< / code > and < code > k< / code > ) Where < code > a == b< / code > .< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > arr = [2,3,1,6,7]
< strong > Output:< / strong > 4
< strong > Explanation:< / strong > The triplets are (0,1,2), (0,2,2), (2,3,4) and (2,4,4)
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > arr = [1,1,1,1,1]
< strong > Output:< / strong > 10
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 1 < = arr.length < = 300< / code > < / li >
< li > < code > 1 < = arr[i] < = 10< sup > 8< / sup > < / code > < / li >
< / ul >