Boa tarde,
Estava procurando alguns exercícios para fazer o gostaria de postar aqui pra galera mais experiente dar uma olhada, ver se tem erros e dar algumas dicas de melhoria do código.
Desde já agradeço a ajuda de todos.
A descrição do exercício é esta:
Um espaço binário dentro de um número inteiro positivo N é qualquer sequência máxima de zeros consecutivos que é cercada por um em ambas as extremidades na representação binária de N.
Por exemplo, o número 9 tem representação binária 1001 e contém um espaço binário de comprimento 2. O número 529 tem representação binária 1000010001 e contém duas lacunas binárias: uma de comprimento 4 e outra de comprimento 3. O número 20 tem representação binária 10100 e contém um espaço binário de comprimento 1. O número 15 tem representação binária 1111 e não possui espaços binários. O número 32 tem representação binária 100000 e não possui lacunas binárias.
Escreva uma função: solução def (N)
def lacuna_binaria(num):
binario = format(num, 'b')
lista_num = binario.split("1")
indice_a_ser_deletado = len(lista_num)
del (lista_num[indice_a_ser_deletado - 1])
while "" in lista_num:
lista_num.remove("")
lista_num = (sorted(lista_num, reverse=True))
if len(lista_num) == 0:
return "0"
else:
return len(lista_num[0])
print(lacuna_binaria(1041))