LeetCode 461. Hamming Distance 漢明距離

題目:

The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

Given two integers x and y, calculate the Hamming distance.

Note: 0 ≤ x, y < 2 ^31.

Example:

Input: x = 1, y = 4

Output: 2

Explanation:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

The above arrows point to positions where the corresponding bits are different.

題目大意是給出輸入十進(jìn)制數(shù),要計(jì)算他們二進(jìn)制的漢明距離(長(zhǎng)度相同的兩個(gè)字符串,它們對(duì)應(yīng)位置不同字符的個(gè)數(shù)就是它們的漢明距離)。

解題思路:

  1. 首先將兩個(gè)數(shù)進(jìn)行位異或運(yùn)算,下面以1和4舉例說(shuō)明:
      1   (0 0 0 1)
      4   (0 1 0 0)
   位異或  (0 1 0 1)

由上可知1和4進(jìn)行位異或運(yùn)算的結(jié)果是(0 1 0 1);

  1. 然后計(jì)算上面結(jié)果中1的個(gè)數(shù)就是漢明距離了,完整代碼如下:
public class Solution {
    public int hammingDistance(int x, int y) {
        return Integer.toBinaryString(x^y).replace("0","").length();
    }
}
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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