Python | Ejecución más larga de un carácter determinado en una string

A veces, mientras trabajamos con Strings, podemos tener un problema en el que necesitamos realizar la extracción de la longitud de la consecución más larga de cierta letra. Esto puede tener aplicación en desarrollo web y programación competitiva. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Usar bucle
Este es un método de fuerza bruta en el que podemos realizar esta tarea. En esto, ejecutamos un ciclo sobre la String y seguimos memorizando el máximo cada vez que ocurre la ejecución.

# Python3 code to demonstrate working of 
# Longest Run of Character in String
# Using loop
  
# initializing string
test_str = 'geeksforgeeeks'
  
# printing original string
print("The original string is : " + test_str)
  
# initializing K 
K = 'e'
  
# Longest Run of Character in String
# Using loop
res = 0
cnt = 0
for chr in test_str:
    if chr == K:
        cnt += 1
    else:
        res = max(res, cnt)
        cnt = 0
res = max(res, cnt)
  
# printing result 
print("Longest Run length of K : " + str(res)) 
Producción :

The original string is : geeksforgeeeks
Longest Run length of K : 3

 

Método n.º 2: Usarmax() + re.findall()

Esta es una forma lineal en la que se puede resolver este problema. En esto, encontramos el máximo de todas las ejecuciones encontradas usando findall().

# Python3 code to demonstrate working of 
# Longest Run of Character in String
# Using max() + re.findall()
import re
  
# initializing string
test_str = 'geeksforgeeeks'
  
# printing original string
print("The original string is : " + test_str)
  
# initializing K 
K = 'e'
  
# Longest Run of Character in String
# Using max() + re.findall()
res = len(max(re.findall(K + '+', test_str), key = len))
  
# printing result 
print("Longest Run length of K : " + str(res)) 
Producción :

The original string is : geeksforgeeeks
Longest Run length of K : 3

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 *