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,
- 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.
- Separe todas las substrings de 1 consecutivos separados por ceros usando el método split() de string.
- 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