Python using bitwise operation, easy to understand


  • 0
    G

    The idea is easy to understand, you should use >> to get the newest value, if the value is an odd number, count += 1 , and number = number - 1 to make it even until to 0.

    class Solution(object):
        def hammingDistance(self, x, y):
            """
            :type x: int
            :type y: int
            :rtype: int
            """
            z, count = x ^ y, 0
            
            if z == 0:
                return 0
            elif z % 2 == 0:
                return self.cal(z, count)
            else:
                count += 1
                return self.cal(z, count)
        
        def cal(self, z, count):
            while z > 0:
                z >>= 1
                if z % 2 != 0:
                    count, z = count + 1, z - 1
            return count
    

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.