Mapa de Python | Longitud de los 1 consecutivos más largos en la representación binaria de un entero dado

Dado un número n, encuentre la longitud de los 1 consecutivos más largos en su representación binaria. Ejemplos:

Input : n = 14
Output : 3
The binary representation of 14 is 1110.

Input : n = 222
Output : 4
The binary representation of 222 is 11011110.

Tenemos una solución existente para este problema, consulte el enlace Longitud de los 1 consecutivos más largos en la representación binaria . Podemos resolver este problema rápidamente en python. El enfoque es muy simple,

  1. Convierta el número decimal en su binario usando la función bin() y elimine los dos primeros caracteres iniciales ‘0b’ porque la función bin() devuelve la representación binaria del número en forma de string y agrega ‘0b’ como prefijo.
  2. Separe todas las substrings de 1 consecutivos separados por ceros usando el método split() de string.
  3. Imprime la longitud máxima de las substrings divididas de 1.

Python3

# Function to find Length of the Longest Consecutive
# 1's in Binary Representation
  
def maxConsecutive1(input):
     # convert number into it's binary
     input = bin(input)
 
     # remove first two characters of output string
     input = input[2:]
 
     # input.split('0') --> splits all sub-strings of
     # consecutive 1's separated by 0's, output will
     # be like ['11','1111']
     # map(len,input.split('0'))  --> map function maps
     # len function on each sub-string of consecutive 1's
     # max() returns maximum element from a list
     print (max(map(len, input.split('0'))))
  
# Driver program
if __name__ == '__main__':
    input = 222
    maxConsecutive1(input)

Producción:

4

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *