Dada una string, extraiga todos los caracteres consecutivos de longitud K.
Entrada : test_str = ‘geekforgeeeksss es bbbest forrr geeks’, K = 3
Salida : [‘eee’, ‘sss’, ‘bbb’, ‘rrr’]
Explicación : K longitud de strings consecutivas extraídas.Entrada : test_str = ‘geekforgeeeksss is bbbest forrrr geeks’, K = 4
Salida : [‘rrrr’]
Explicación : K strings consecutivas de longitud extraídas.
Método #1: Usar bucle
En esto, mantenemos el contador para verificar la consecución de los elementos, si son exactamente iguales a K antes del elemento separado, entonces se devuelve el número, que se agrega por sí mismo K veces.
Python3
# Python3 code to demonstrate working of # K length consecutive characters # Using loop # initializing string test_str = 'geekforgeeekssss is bbbbest forrrr geeks' # printing original string print("The original string is : " + str(test_str)) # initializing K K = 4 res = [] curr, cnt = None, 0 for chr in test_str: # increment for similar character if chr == curr: cnt += 1 else: curr, cnt = chr, 1 # if count exactly K, element is added if cnt == K: res.append(K * chr) # printing result print("The K length similar characters : " + str(res))
The original string is : geekforgeeekssss is bbbbest forrrrrrr geeks The K length similar characters : ['ssss', 'bbbb', 'rrrr']
Método #2: Usar split() + enumerar()
En esto, creamos una substring a partir de cada índice, y si cada elemento de esa substring es igual, se devuelve al resultado.
Python3
# Python3 code to demonstrate working of # K length consecutive characters # Using split() + enumerate() # initializing string test_str = 'geekforgeeekssss is bbbbest forrrr geeks' # printing original string print("The original string is : " + str(test_str)) # initializing K K = 4 res = [] for idx, ele in enumerate(test_str): # creating equi string substr = ele * K # checking if equal to actual string if test_str[idx : idx + K] == substr: res.append(substr) # printing result print("The K length similar characters : " + str(list(set(res))))
The original string is : geekforgeeekssss is bbbbest forrrrrrr geeks The K length similar characters : ['bbbb', 'ssss', 'rrrr']
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