Ежедневный вопрос по алгоритму — буквенный код 461 — расстояние Хэмминга — питон

алгоритм
Ежедневный вопрос по алгоритму — буквенный код 461 — расстояние Хэмминга — питон

【Название Описание】

【Идея кода】

Этот вопрос очень прост, и его можно решить с помощью одной строки кода. В основном это битовая операция. Она редко используется и ее легко игнорировать, поэтому просто просмотрите ее. Согласно основе вопроса, мы хотим подсчитать количество разных битов в двоичном представлении двух чисел, поэтому проще всего сравнивать напрямую с XOR.

1.Первый XOR представляет собой десятичное число типа 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')