【LeetCode】漢明距離的演算法及運用
阿新 • • 發佈:2018-12-29
1、什麼是漢明距離
漢明距離,從二進位制方面來看,就是兩個等長字串的二進位制對應 bit 不相同的位個數,例如
1011
1000 //漢明距離為2
1100
1010 //漢明距離是2
2.計算漢明距離的演算法
思路:
01.將兩個給定的數進行 異或(^)運算後儲存在變數a,漢明距離就是a的二進位制中1的個數
02.當a不為0時,和0x01進行按位與(&)運算。如果結果為1,則統計變數加1
03.將a右移一位,重複第02步
程式碼:
class Solution {
public:
int hammingDistance (int x, int y) {
int cnt = 0;
x=x^y;
while(x!=0)
{
if(x&0x01)
cnt++;
x=x>>1;
}
return cnt;
}
};
如若用Python來寫,^在Python中是指“按位異或運算子”:當兩對應的二進位相異時,結果為1