【LeetCode461】汉明距离(easy位运算)
【摘要】
1.题目
2.思路
又水一题。。我都羞愧了。 这题用异或处理,相同的二进制位为1,不同为0,最后统计1的个数即所求。
顺便复习下【按位或】和【逻辑或】区别: 前者是位操作,后者是条件(bool)...
1.题目
2.思路
又水一题。。我都羞愧了。
这题用异或处理,相同的二进制位为1,不同为0,最后统计1的个数即所求。
顺便复习下【按位或】和【逻辑或】区别:
前者是位操作,后者是条件(bool)计算操作。如1|2 = 3 1||2 = 1,||只关心0与非0,得出结果也只有0与1,而|相当于将||用于两个操作数的每一位。
C++的bitset
用法。
bitset
类似数组,只能放0或1,其常用的函数有:
count() 返回有多少个1
any() 判断是否至少有一个1
none() 判断是否全为0
set() 把所有位置成1
set(k, v) 将第k位变成v
reset() 把所有位变成0
flip() 等价于~
flip(k) 把第k位取反
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3.代码
class Solution {
public:
int hammingDistance(int x, int y) {
return bitset<32>(x^y).count();
}
};
- 1
- 2
- 3
- 4
- 5
- 6
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/113787138
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)