每日一道演算法題--leetcode 461--漢明距離--python

杉杉不要bug發表於2019-05-10

【題目描述】

每日一道演算法題--leetcode 461--漢明距離--python
【程式碼思路】

這道題很簡單,一行程式碼就可以搞定,主要是位運算,平時用到的很少,容易忽略,那就簡單複習一下。根據題幹,我們想統計兩個數二進位制表示法中不同位的個數,那麼用異或直接進行比較最直接了,

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')
複製程式碼

相關文章