Python: caracteres consecutivos de longitud K

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

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

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

Deja una respuesta

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