Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for The Hamming Distance by Rafal.U
def binary(liczba):
lista = []
while liczba != 0:
reszta = liczba%2
liczba -= reszta
liczba /= 2
lista.append(int(reszta)) # wstwianie do zmiennej lista 1 i 0 odpowiadajacych reszcie z dzielenia liczby przez 2
x = len(lista)
while x < 20:
lista.append(0) # dodanie zer w celu wyrownania dlugosci ciagow znakow obu liczb
x += 1
return lista
def checkio(n, m):
n_binary = binary(n)
m_binary = binary(m)
counter = 0
i = 0
L = 20
n_binary.reverse() # obrocenie kolejnosci elementow aby najmniej znaczace bity były na koncu listy
m_binary.reverse()
while i < L:
if n_binary[i] != m_binary[i]: counter += 1
i += 1
return counter
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(117, 17) == 3, "First example"
assert checkio(1, 2) == 2, "Second example"
assert checkio(16, 15) == 5, "Third example"
Nov. 9, 2016