Dada una substring K, la tarea es escribir un programa Python para encontrar la repetición de la string K en cada aparición consecutiva de K.
Ejemplo
Entrada: test_str = ‘geeksgeeks son geeksgeeksgeeks para todos los geeks’, K = «geeks»
Salida: [2, 3, 1]
Explicación : La primera consecución de ‘geeks’ es 2.
Entrada: test_str = ‘geeksgeeks son geeksgeeksgeeksgeeks para todos los geeks’, K = «geeks»
Salida: [2, 4, 1]
Explicación: La primera consecución de ‘geeks’ es 2, la siguiente viene con 4 condenas de geeks.
Método 1: Usar split() + count() + comprensión de lista
Funciona solo para casos específicos en los que la consecución está separada por espacios. En esto, cada palabra se divide usando split(), y cada segmento se evalúa para el conteo de repeticiones usando count().
Python3
# Python3 code to demonstrate working of # Number of repeated substrings in consecution # Using split() + count() + list comprehension # initializing string test_str = 'geeksgeeks are geeksgeeksgeeks for all geeks' # printing original string print("The original string is : " + str(test_str)) # initializing K K = "geeks" # count() counts repetition res = [sub.count(K) for sub in test_str.split(' ') if sub.count(K) != 0] # printing result print("String repetitions : " + str(res))
Producción:
La string original es: geeksgeeks son geeksgeeksgeeks para todos los geeks
Repeticiones de strings: [2, 3, 1]
Complejidad de tiempo: O(n)
Complejidad espacial: O(n)
Método 2: Usando findall() + regex + len()
En esto, todas las ejecuciones se calculan para la repetición de la substring, y luego la división de la longitud por la longitud de la substring da la medida del número de repeticiones.
Python3
# Python3 code to demonstrate working of # Number of repeated substrings in consecution # Using findall() + regex + len() import re # initializing string test_str = 'geeksgeeksaregeeksgeeksgeeksforallgeeks' # printing original string print("The original string is : " + str(test_str)) # initializing K K = 'geeks' n = len(K) # getting regex regx = re.compile(f'((?:{K})+)') # getting repeats counts # findall finding all substring joined repetitions res = [len(occ) // n for occ in regx.findall(test_str)] # printing result print("String repetitions : " + str(res))
Producción:
La string original es: geeksgeeks son geeksgeeksgeeks para todos los geeks
Repeticiones de strings: [2, 3, 1]
Complejidad de tiempo: O(n)
Complejidad espacial: O(n)
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