Python: longitud de substring más larga de K

Dada una string y un carácter K, encuentre la longitud de substring más larga de K.

Entrada : test_str = ‘abcaaaacbbaa’, K = b
Salida : 2
Explicación : b ocurre dos veces, 2 > 1.

Entrada : test_str = ‘abcaacccbbaa’, K = c
Salida : 3
Explicación : El número máximo de veces que ocurre c es 3.

Método #1: Usar bucle

Esta es una forma bruta de resolver este problema, en esto, cuando se encuentra K, el contador se mantiene hasta que ocurre otro carácter, y se anota el conteo, el máximo de estos conteos se mantiene y se devuelve como resultado.

Python3

# Python3 code to demonstrate working of 
# Longest Substring of K
# Using loop
  
# initializing string
test_str = 'abcaaaacbbaa'
  
# printing original String
print("The original string is : " + str(test_str))
  
# initializing K 
K = 'a'
  
cnt = 0
res = 0
for idx in range(len(test_str)):
      
    # increment counter on checking
    if test_str[idx] == K:
        cnt += 1
    else:
        cnt = 0
          
    # retaining max
    res = max(res, cnt)
  
# printing result 
print("The Longest Substring Length : " + str(res)) 
Producción

The original string is : abcaaaacbbaa
The Longest Substring Length : 4

Método #2: Usar findall() + max()

En esto, obtenemos todas las substrings posibles de K usando findall() y max() se usa sobre él para obtener la longitud máxima con len como clave.

Python3

# Python3 code to demonstrate working of 
# Longest Substring of K
# Using findall() + max()
import re
  
# initializing string
test_str = 'abcaaaacbbaa'
  
# printing original String
print("The original string is : " + str(test_str))
  
# initializing K 
K = 'a'
  
# getting all substrings
res = re.findall(r'' + K + '+', test_str)
  
# getting maximum of substrings Length
res = len(max(res, key = len))
  
# printing result 
print("The Longest Substring Length : " + str(res)) 
Producción

The original string is : abcaaaacbbaa
The Longest Substring Length : 4

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 *