算法 - 計(jì)算漢明距離

算法 - 計(jì)算漢明距離

1. 題目

給出兩個(gè)整數(shù) x 和 y,計(jì)算它們之間的漢明距離。

漢明距離是使用在數(shù)據(jù)傳輸差錯(cuò)控制編碼里面的,漢明距離是一個(gè)概念,它表示兩個(gè)(相同長(zhǎng)度)字對(duì)應(yīng)位不同的數(shù)量,我們以d(x,y)表示兩個(gè)字x,y之間的漢明距離。對(duì)兩個(gè)字符串進(jìn)行異或運(yùn)算,并統(tǒng)計(jì)結(jié)果為1的個(gè)數(shù),那么這個(gè)數(shù)就是漢明距離。
示例:

  • 輸入: x = 1, y = 8
  • 輸出: 2
  • 解釋:
1   (0 0 0 1)
8   (1 0 0 0)
     ↑     ↑

上面的箭頭指出了對(duì)應(yīng)二進(jìn)制位不同的位置。

2. 代碼

2.1. C#

public class Solution {
    public int HammingDistance(int x, int y) {
        var n = x ^ y;

        // 計(jì)算1的個(gè)數(shù)
        var counter = 0;
        while(n>0){
            n = n & (n-1);
            counter ++;
        }
        return counter;
    }
}

2.2. Javascript

var hammingDistance = function(x, y) {
    let n = x^y;
    let counter = 0;
    while(n){
        counter ++;
        n = n & (n-1);
    }
    return counter;
};

3. 另:計(jì)算二進(jìn)制數(shù)字中1的個(gè)數(shù)

一個(gè)整數(shù)減去1,再和原整數(shù)做與運(yùn)算,會(huì)把該整數(shù)最右邊一個(gè)1變成0。
因此,一個(gè)整數(shù)的二進(jìn)制有多少個(gè)1,就可以進(jìn)行多少次這樣的操作。

    let counter = 0;
    while(n){
        counter ++;
        n = n & (n-1);
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先來(lái)了解一下漢明距離 在信息論中,兩個(gè)等長(zhǎng)字符串之間的漢明距離是兩個(gè)字符串對(duì)應(yīng)位置的不同字符的個(gè)數(shù)。換句話說(shuō),它就...
    sixkery閱讀 458評(píng)論 0 1
  • 709.轉(zhuǎn)換成小寫字母 題目描述:實(shí)現(xiàn)函數(shù) ToLowerCase(),該函數(shù)接收一個(gè)字符串參數(shù) str,并將該字...
    Zy_0818閱讀 234評(píng)論 0 1
  • 兩個(gè)整數(shù)之間的漢明距離指的是這兩個(gè)數(shù)字對(duì)應(yīng)二進(jìn)制位不同的位置的數(shù)目。給出兩個(gè)整數(shù)x和y,計(jì)算它們之間的漢明距離。注...
    SunSeaSky閱讀 261評(píng)論 0 0
  • 題目來(lái)源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/hamm...
    二進(jìn)制的二哈閱讀 333評(píng)論 0 0
  • 兩個(gè)等長(zhǎng)字符串之間的漢明距離[https://zh.wikipedia.org/wiki/%E6%B1%89%E6...
    lio_zero閱讀 2,136評(píng)論 0 7

友情鏈接更多精彩內(nèi)容