Hay muchos problemas en los que necesitamos obtener todas las substrings de longitud K de una string. Esta utilidad en particular es muy popular en la programación competitiva y tener atajos para resolver estos problemas siempre puede ser útil. Analicemos ciertas formas en que se puede resolver este problema.
Método n.º 1: Uso de la comprensión de listas + división de strings
La combinación de comprensión de listas y división de strings se puede utilizar para realizar esta tarea en particular. Este es solo un método de fuerza bruta para realizar esta tarea.
# Python3 code to demonstrate working of # Extract K length substrings # Using list comprehension + string slicing # initializing string test_str = "Geeks" # printing original string print("The original string is : " + str(test_str)) # initializing K K = 3 # Extract K length substrings # Using list comprehension + string slicing res = [test_str[i: j] for i in range(len(test_str)) for j in range(i + 1, len(test_str) + 1) if len(test_str[i:j]) == K] # printing result print("All K length substrings of string are : " + str(res))
The original string is : Geeks All K length substrings of string are : ['Gee', 'eek', 'eks']
Método #2: Usaritertools.combinations()
Esta tarea en particular también se puede realizar usando la función incorporada de combinaciones, que ayuda a obtener todas las combinaciones posibles de longitud K, es decir, las substrings de una string.
# Python3 code to demonstrate working of # Extract K length substrings # Using itertools.combinations() from itertools import combinations # initializing string test_str = "Geeks" # printing original string print("The original string is : " + str(test_str)) # initializing K K = 3 # Extract K length substrings # Using itertools.combinations() res = [test_str[x:y] for x, y in combinations(range(len(test_str) + 1), r = 2) if len(test_str[x:y]) == K ] # printing result print("All K length substrings of string are : " + str(res))
The original string is : Geeks All K length substrings of string are : ['Gee', 'eek', 'eks']
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA