You can do this:
max(binario.split('1'), key=len)
This way I create a array
by separating by 1, then I use the max
function to get the highest len
, resulting in the largest sequence of zeros.
Using your code:
import collections
num = int(input('Digite um número inteiro: ')) #Inputar número inteiro
binario = bin(num)[2:] #Cortar o 0b
sequence = binario
collection = collections.Counter(sequence)
print('O número binário de {} é {}'.format(num,binario))
print('A sequência que mais temos é {}'.format(collection.most_common(2)))
print('A maior sequência de 0 é {}'.format(max(binario.split('1'), key=len)))
Result:
Digite um número inteiro: 200
O número binário de 200 é 11001000
A sequência que mais temos é [('0', 5), ('1', 3)]
A maior sequência de 0 é 000
Update
A new way to respond to what was asked in the comments.
To show the largest number of 0 repeated digits, set the len
function, so it takes the number of digits of string
.
len(max(binario.split('1'), key=len)))
Using your code:
import collections
num = int(input('Digite um número inteiro: ')) #Inputar número inteiro
binario = bin(num)[2:] #Cortar o 0b
sequence = binario
collection = collections.Counter(sequence)
print('O número binário de {} é {}'.format(num,binario))
print('A sequência que mais temos é {}'.format(collection.most_common(2)))
print('A maior sequência de 0 é {}'.format(len(max(binario.split('1'), key=len))))
Result:
Digite um número inteiro: 200
O número binário de 200 é 11001000
A sequência que mais temos é [('0', 5), ('1', 3)]
A maior sequência de 0 é 3