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