Find the largest string using Python

0

I have the following 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)))

It already shows me how many times the number 1 and 0 appears in each binary number; But now I need it to find the largest sequence of 0 for example in 200 binary is 11001 000 in case the largest sequence of 0 is 3; I wanted to solve this in the program itself.

    
asked by anonymous 12.12.2018 / 13:53

1 answer

5

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
    
12.12.2018 / 14:06