Solution one:
思路:按位与直接比较
int hammingDistance(int x, int y) { int c = 0; for(int i = 32;i>=0;i--){ if((x & (1<<i)) != (y & (1<<i))){ c++; } } return c; }
Solution two:
思路:求出x与y的异或,再求出其二进制中的非零值
int hammingDistance(int x, int y) {
int c = 0,d=x^y; while(d){ if(d%2) { c++; } d = d/2; } return c; }新闻热点
疑难解答