Java Solution for Sub-array with Xor


#1

public class Solution {
public int solve(ArrayList A, int B) {
ArrayList lst = new ArrayList();
lst.add(A.get(0));
for(int i=1;i<A.size();i++){
lst.add(lst.get(i-1)^A.get(i));
}
HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
int ans =0 ;
for(int i=0;i<A.size();i++){
int temp = lst.get(i)^B;
if(map.containsKey(temp)){
ans +=map.get(temp);
}
if(B==lst.get(i)){
ans++;
}
if(map.containsKey(lst.get(i))){
map.put(lst.get(i),map.get(lst.get(i))+1);
}
else{
map.put(lst.get(i),1);
}
}
return ans;
}
}