兩個整數(shù)之間的漢明距離指的是這兩個數(shù)字對應(yīng)二進(jìn)制位不同的位置的數(shù)目梭纹。
給出兩個整數(shù)?x?和?y蛛株,計(jì)算它們之間的漢明距離周霉。
注意:
0 ≤?x,?y?< 231.
示例:
輸入:
x = 1, y = 4
輸出:
2
解釋:
1? (0 0 0 1)
4? (0 1 0 0)? ? ??
? ? ? ? ?↑? ? ↑
上面的箭頭指出了對應(yīng)二進(jìn)制位不同的位置雨席。
思路:數(shù)字的位操作問題征唬,先計(jì)算輸入的兩個數(shù)字的異或操作捌显,然后計(jì)算其中1的個數(shù)即可,數(shù)字和字符串互相轉(zhuǎn)換
是常用的方法总寒。
class Solution {
? ? public int hammingDistance(int x, int y) {
? ? ? ? int n = x ^ y;
? ? ? ? String result = Integer.toBinaryString(n);
? ? ? ? int count = 0;
? ? ? ? for (int i = 0; i < result.length(); i++) {
? ? ? ? ? ? if (result.charAt(i) == '1')
? ? ? ? ? ? ? ? count++;
? ? ? ? }
? ? ? ? return count;
? ? }
}