1. 程式人生 > >LeetCode Easy 461 海明距離 Python

LeetCode Easy 461 海明距離 Python

def hammingDistance(self, x, y):
    """
    演算法:bit操作
    思路:
        首先很容易想到用異或x^y來求得x和y不同位置的"情況",
        1    (0 0 0 1)
        4    (0 1 0 0)
       異或->   1 0 1
        剩下的問題就是數有幾個1了,可以像十進位制下每次除以10一位一位取出來數一樣,取末尾的值,然後右移
    複雜度分析:
        時間:ON
        空間: O1
    """
    num = x ^ y
    counter = 0
    while num != 0:
        counter += (num & 1)
        num >>= 1
    return counter