1.漢明距離概念簡析
漢明距離,從二進制方面來看,就是兩個等長字符串的二進制對應 bit 不相同的位個數,例如
1011 1000 //漢明距離為2 1100 1010 //漢明距離是2
2.計算漢明距離的算法
思路:
01.將兩個給定的數進行 異或(^)運算后保存在變量a,漢明距離就是a的二進制中1的個數
02.當a不為0時,和0x01進行 按位與(&)運算,如果結果為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; } };