每日一题——位运算符
136.只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
题解:
public int singleNumber(int[] nums){
int res = 0;
for(int i : nums){
res ^= i;
}
return res;
}
389.找不同
给定两个字符串 s 和 t,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
题解:
public char findTheDifference(String s, String t){
char[] charArray = s.contact(t).toCharArray();
int res = 0;
for(char c :charArray ){
res ^= c;
}
return res;
}
来源:力扣(LeetCode)
位运算符
异或:^
a^a=0 任何数字和自己异或都是0
a^0=a 任何数字和0异或都是它自己
aba=aab 有交换律
128^129=1
128:1000 0000
129:1000 0001