Dada una string, calcule las ocurrencias no superpuestas de N caracteres K repetidos.
Entrada : test_str = ‘aaabaaaabbaa’, K = “a”, N = 3
Salida : 2
Explicación : “aaa” aparece dos veces como ejecución no superpuesta.Entrada : test_str = ‘aaabaaaabbbaa’, K = “b”, N = 3
Salida : 1
Explicación : “bbb” se produce una vez como ejecución no superpuesta.
Método n. ° 1: usar sum() + split() [Funciona solo para bi-string]
En esto, la división se realiza en un carácter que no sea K, y luego cada segmento se cuenta para Ocurrencias y la frecuencia se suma usando sum(). Esto funciona para strings que contienen solo 2 caracteres únicos.
Python3
# Python3 code to demonstrate working of # Non-Overlapping occurrences of N Repeated K character # Using split() + sum # initializing string test_str = 'aaabaaaabbaa' # printing original string print("The original string is : " + str(test_str)) # initializing K K = "a" # initializing N N = 2 # getting split char spl_char = [ele for ele in test_str if ele != K][0] # getting split list temp = test_str.split(spl_char) # getting Non-Overlapping occurrences res = sum( len(sub) // N for sub in temp) # printing result print("The Non-Overlapping occurrences : " + str(res))
The original string is : aaabaaaabbaa The Non-Overlapping occurrences : 4
Método #2: Usar re.findall()
Esta es otra forma en la que se puede realizar esta tarea. Esto puede manejar todo tipo de strings y usar regex() para resolver esto.
Python3
# Python3 code to demonstrate working of # Non-Overlapping occurrences of N Repeated K character # Using re.findall() import re # initializing string test_str = 'aaabaaaabbaa' # printing original string print("The original string is : " + str(test_str)) # initializing K K = "a" # initializing N N = 2 # getting length using len() # getting all occ. of substring res = len(re.findall(K * N, test_str)) # printing result print("The Non-Overlapping occurrences : " + str(res))
The original string is : aaabaaaabbaa The Non-Overlapping occurrences : 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