算法461. 汉明距离(多语言实现)
Posted 二当家的白帽子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法461. 汉明距离(多语言实现)相关的知识,希望对你有一定的参考价值。
文章目录
461. 汉明距离:
两个整数之间的 汉明距离
指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。
样例 1:
输入:
x = 1, y = 4
输出:
2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
样例 2:
输入:
x = 3, y = 1
输出:
1
提示:
- 0 <= x, y <= 2 31 2^31 231 - 1
分析
- 面对这道算法题目,二当家的陷入了沉思。
- 两个数字不一样的二进制位的数目,直观想法第一步一定是做按位异或操作。
- 之后就是统计二进制中位为1的数目,大部分编程语言就提供了库API。
题解
java
class Solution
public int hammingDistance(int x, int y)
return Integer.bitCount(x ^ y);
c
int hammingDistance(int x, int y)
return __builtin_popcount(x ^ y);
c++
class Solution
public:
int hammingDistance(int x, int y)
return __builtin_popcount(x ^ y);
;
python
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
return bin(x ^ y).count('1')
go
func hammingDistance(x int, y int) int
return bits.OnesCount(uint(x ^ y))
rust
impl Solution
pub fn hamming_distance(x: i32, y: i32) -> i32
(x ^ y).count_ones() as i32
typescript
function hammingDistance(x: number, y: number): number
var z = x ^ y;
var ans = 0;
while(z)
z &= z - 1;
ans++;
return ans;
;
原题传送门:https://leetcode.cn/problems/hamming-distance/
非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://le-yi.blog.csdn.net/ 博客原创~
以上是关于算法461. 汉明距离(多语言实现)的主要内容,如果未能解决你的问题,请参考以下文章