Python: encuentre todas las combinaciones de substrings superpuestas de una string

Dada una string, la tarea es escribir un programa en Python para encontrar todas las combinaciones de substrings superpuestas de una string y almacenarlas en una lista. La lista de listas se ordenará y agrupará por la longitud de las substrings.

Entrada: test_str = ‘Geeks4G’

Salida: [[”, ”, ”, ”, ”, ”, ”, ”], [‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘4’, ‘G’] , [‘Ge’, ‘ee’, ‘ek’, ‘ks’, ‘s4’, ‘4G’], [‘Gee’, ‘eek’, ‘eks’, ‘ks4’, ‘s4G’], [ ‘Geek’, ‘eeks’, ‘eks4’, ‘ks4G’], [‘Geeks’, ‘eeks4’, ‘eks4G’], [‘Geeks4’, ‘eeks4G’], [‘Geeks4G’]]

Explicación : se extrajeron todas las substrings superpuestas de todas las longitudes.

Entrada: test_str = ‘Geeks’

Salida: [[”, ”, ”, ”, ”, ”], [‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’], [‘Ge’, ‘ee’, ‘ek ‘, ‘ks’], [‘Gee’, ‘eek’, ‘eks’], [‘Geek’, ‘eeks’], [‘Geeks’]]

Explicación: se extrajeron todas las substrings superpuestas de todas las longitudes.

Método: Uso de comprensión de lista , corte y bucle

En esto, realizamos la tarea de obtener cada segmento utilizando el corte, todas las strings de un tamaño particular se crean mediante la comprensión de listas. La manipulación de todos los tamaños se realiza mediante bucle. Más tarde, todos se imprimen como una lista de listas.

Ejemplo:

Python3

# Python3 code to demonstrate working of
# Overlapping substrings of all lengths
# Using list comprehension + slicing + loop
  
# initializing string
test_str = 'Geeks4G'
  
# printing original string
print("The original string is : " + str(test_str))
  
# manipulating overlap size using loop
res = []
for idx in range(len(test_str) + 1):
  
    # getting overlap strings
    res.append([test_str[j: j + idx] for j in range(len(test_str) - idx + 1)])
  
# printing result
print("All overlapping Strings : " + str(res))

Producción:

La string original es: Geeks4G

Todas las strings superpuestas: [[”, ”, ”, ”, ”, ”, ”, ”], [‘G’, ‘e’, ​​’e’, ​​’k’, ‘s’, ‘4’, ‘G ‘], [‘Ge’, ‘ee’, ‘ek’, ‘ks’, ‘s4’, ‘4G’], [‘Gee’, ‘eek’, ‘eks’, ‘ks4’, ‘s4G’] , [‘Geek’, ‘eeks’, ‘eks4’, ‘ks4G’], [‘Geeks’, ‘eeks4’, ‘eks4G’], [‘Geeks4’, ‘eeks4G’], [‘Geeks4G’]]

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 *