算法461. 汉明距离(多语言实现)

Posted 二当家的白帽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法461. 汉明距离(多语言实现)相关的知识,希望对你有一定的参考价值。


文章目录


461. 汉明距离:

两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。

给你两个整数 xy,计算并返回它们之间的汉明距离。

样例 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. 汉明距离(多语言实现)的主要内容,如果未能解决你的问题,请参考以下文章

461-汉明距离

461. 汉明距离

461. 汉明距离

461. 汉明距离

题目地址(461. 汉明距离)

LeetCode #461 汉明距离