Python: aparición media de K en una string

Dada una string, la tarea es escribir un programa de Python para extraer la ocurrencia media de un carácter. 

Entrada: test_str = «geeksforgeeks es lo mejor para todos los geeks», K = ‘e’

Salida : 10

Explicación: 7 ocurrencias de e. La cuarta aparición [media] está en el décimo índice.

Entrada: test_str = «geeksforgeeks es lo mejor para todos los geeks», K = ‘g’

Salida : 8

Explicación: 3 ocurrencias de g. La segunda aparición [media] está en el octavo índice.

Método n. ° 1: usar enumerar() + comprensión de lista

En esto, realizamos la tarea de obtener todas las ocurrencias utilizando la comprensión de listas y enumerar obtiene todos los índices. Publique que el elemento central de la lista se imprime para obtener la mitad de la aparición de un carácter.

Python3

# Python3 code to demonstrate working of
# Mid occurrence of K in string
# Using find() + max() + slice
 
# initializing string
test_str = "geeksforgeeks is best for all geeks"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing K
K = 'e'
 
# getting all the indices of K
indices = [idx for idx, ele in enumerate(test_str) if ele == K]
 
# getting mid index
res = indices[len(indices) // 2]
 
# printing result
print("Mid occurrence of K : " + str(res))

Producción:

The original string is : geeksforgeeks is best for all geeks
Mid occurrence of K : 10

Complejidad de tiempo: O(n)

Complejidad espacial: O(n)

Método n. ° 2: usar finditer() + comprensión de lista + expresiones regulares

En esto, el carácter se encuentra usando expresiones regulares y finditer(). La aparición intermedia es el elemento intermedio de la lista de índices.

Python3

# Python3 code to demonstrate working of
# Mid occurrence of K in string
# Using finditer() + list comprehension + regex
import re
 
# initializing string
test_str = "geeksforgeeks is best for all geeks"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing K
K = 'e'
 
# getting all the indices of K
# using regex
indices = [ele.start() for ele in re.finditer(K, test_str)]
 
# getting mid index
res = indices[len(indices) // 2]
 
# printing result
print("Mid occurrence of K : " + str(res))

Producción:

The original string is : geeksforgeeks is best for all geeks
Mid occurrence of K : 10

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

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 *