【題目描述】
【程式碼思路】這道題很簡單,一行程式碼就可以搞定,主要是位運算,平時用到的很少,容易忽略,那就簡單複習一下。根據題幹,我們想統計兩個數二進位制表示法中不同位的個數,那麼用異或直接進行比較最直接了,
1. 先異或得到的是int型別的十進位制數,但是其實按位對比的過程中,計算機也是將兩個數轉換成二進位制之後才可以比較的,比較完畢再變成十進位制的整數返回回來。
x^y ->int型別
複製程式碼
2. 接下來用bin()函式轉換成二進位制,轉換完是一個str型別。
bin(x^y)->str型別
複製程式碼
3. 再統計其中字元1出現的次數即可。
bin(x^y).count('1')
複製程式碼
【原始碼】
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
return bin(x^y).count('1')
複製程式碼