Programa de Python para contar caracteres que rodean las vocales

Dada una string, la tarea es escribir un programa en Python para contar aquellos caracteres que tienen vocales como vecinos.

Ejemplos:

Entrada : test_str = ‘geeksforgeeksforgeeks’ 
Salida : 10 
Explicación : g, k, f, r, g, k, f, r, g, k tienen vocales circundantes.

Entrada : test_str = ‘geeks’ 
Salida : 2 
Explicación : g, k tienen vocales circundantes. 
 

Método 1: Usar bucle

En esto, incrementamos el contador mientras verificamos los elementos anteriores y sucesivos en busca de vocales usando bucle.

Python3

# initializing string
test_str = 'geeksforgeeksforgeeks'
 
# printing original string
print("The original string is : " + str(test_str))
 
res = 0
vow_list = ['a', 'e', 'i', 'o', 'u']
for idx in range(1, len(test_str) - 1):
 
    # checking for preceding and succeeding element to be vowel
    if test_str[idx] not in vow_list and (test_str[idx - 1] in vow_list or test_str[idx + 1] in vow_list):
        res += 1
 
# solving for 1st and last element
if test_str[0] not in vow_list and test_str[1] in vow_list:
    res += 1
 
if test_str[-1] not in vow_list and test_str[-2] in vow_list:
    res += 1
 
# printing result
print("Characters around vowels count : " + str(res))

Producción:

La string original es: geeksforgeeksforgeeks

Número de caracteres alrededor de las vocales: 10

Método 2: Usar sum() y comprensión de listas

En esto, realizamos la tarea de obtener el conteo usando sum() y la iteración y el filtrado se realizan usando la comprensión de listas.

Python3

# initializing string
test_str = 'geeksforgeeksforgeeks'
 
# printing original string
print("The original string is : " + str(test_str))
 
vow_list = ['a', 'e', 'i', 'o', 'u']
 
# sum() accumulates all vowels surround elements
res = sum([1 for idx in range(1, len(test_str) - 1) if test_str[idx]
           not in vow_list and (test_str[idx - 1] in vow_list or test_str[idx + 1] in vow_list)])
 
# solving for 1st and last element
if test_str[0] not in vow_list and test_str[1] in vow_list:
    res += 1
 
if test_str[-1] not in vow_list and test_str[-2] in vow_list:
    res += 1
 
# printing result
print("Characters around vowels count : " + str(res))

 Producción:

La string original es: geeksforgeeksforgeeks

Número de caracteres alrededor de las vocales: 10

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad de tiempo: O(n)

Complejidad espacial: 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 *