Python: extrae substrings de longitud K

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))
Producción :

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))
Producción :

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

Deja una respuesta

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