Dada la string str de tamaño N , que contiene alfabetos ingleses en minúsculas. La tarea es reemplazar lexicográficamente cada vocal con la siguiente vocal inmediata, es decir,
‘a’ será reemplazada por ‘e’,
’e’ será reemplazada por ‘i’,
‘i’ será reemplazada por ‘o’,
‘o’ será reemplazada por ‘u’,
‘u’ será reemplazada por ‘a’.
Ejemplos :
Entrada: str = “geeksforgeeks”
Salida: giiksfurgiiks
Explicación:
e es reemplazada por i
o es reemplazada por u
Entonces la string final será “giiksfurgiiks”.Entrada: str = “gfg”
Salida: gfg
Enfoque: Crearemos un Hashing de tamaño 5 para almacenar todas las vocales para que el reemplazo se pueda hacer fácilmente para cada vocal.
- Crea un mapa y almacena todas las vocales.
- Iterar los elementos de string de izquierda a derecha.
- Si el elemento de la string es una vocal, cámbielo a las siguientes vocales.
- Finalmente, imprima la string final.
Aquí está la implementación del enfoque anterior:
C++14
// C++ program to convert all the vowels in // in the string to the next vowel #include <bits/stdc++.h> using namespace std; // Function to replace every vowel // with next vowel lexicographically string print_next_vovel_string(string str) { // Storing the vowels in the map with // custom numbers showing their index map<char, int> m; m['a'] = 0; m['e'] = 1; m['i'] = 2; m['o'] = 3; m['u'] = 4; char arr[5] = { 'a', 'e', 'i', 'o', 'u' }; int N = str.length(); // Iterate over the string for (int i = 0; i < N; i++) { char c = str[i]; // If the current character is a vowel // Find the index in Hash and // Replace it with next vowel from Hash if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { int index = m + 1; int newindex = index % 5; str[i] = arr[newindex]; } } return str; } // Driver function int main() { string str = "geeksforgeeks"; cout << print_next_vovel_string(str); return 0; }
Java
// Java program to convert all the vowels in // in the String to the next vowel import java.util.*; class GFG{ // Function to replace every vowel // with next vowel lexicographically static String print_next_vovel_String(char []str) { // storing the vowels in the map with // custom numbers showing their index HashMap<Character, Integer> m = new HashMap<Character, Integer>(); m.put('a', 0); m.put('e', 1); m.put('i', 2); m.put('o', 3); m.put('u', 4); char arr[] = { 'a', 'e', 'i', 'o', 'u' }; int N = str.length; // Iterate over the String for(int i = 0; i < N; i++) { char c = str[i]; // If the current character is a vowel // Find the index in Hash and // Replace it with next vowel from Hash if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { int index = m.get(c) + 1; int newindex = index % 5; str[i] = arr[newindex]; } } return String.valueOf(str); } // Driver code public static void main(String[] args) { String str = "geeksforgeeks"; System.out.print(print_next_vovel_String( str.toCharArray())); } } // This code is contributed by Amit Katiyar
Python3
# Python3 program to convert # all the vowels in the string # to the next vowel # Function to replace every vowel # with next vowel lexicographically def print_next_vovel_string(st): # Storing the vowels in # the map with custom # numbers showing their index m = {} m['a'] = 0 m['e'] = 1 m['i'] = 2 m['o'] = 3 m['u'] = 4 arr = ['a', 'e', 'i', 'o', 'u'] N = len(st) # Iterate over the string for i in range (N): c = st[i] # If the current character # is a vowel # Find the index in Hash # and Replace it with next # vowel from Hash if (c == 'a' or c == 'e' or c == 'i'or c == 'o' or c == 'u'): index = m[st[i]] + 1 newindex = index % 5 st = st.replace(st[i], arr[newindex], 1) return st # Driver function if __name__ == "__main__": st = "geeksforgeeks" print (print_next_vovel_string(st)) # This code is contributed by Chitranayal
C#
// C# program to convert all the vowels in // in the String to the next vowel using System; using System.Collections.Generic; class GFG{ // Function to replace every vowel // with next vowel lexicographically static String print_next_vovel_String(char []str) { // Storing the vowels in the map with // custom numbers showing their index Dictionary<char, int> m = new Dictionary<char, int>(); m.Add('a', 0); m.Add('e', 1); m.Add('i', 2); m.Add('o', 3); m.Add('u', 4); char []arr = { 'a', 'e', 'i', 'o', 'u' }; int N = str.Length; // Iterate over the String for(int i = 0; i < N; i++) { char c = str[i]; // If the current character is a vowel // Find the index in Hash and // Replace it with next vowel from Hash if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') { int index = m + 1; int newindex = index % 5; str[i] = arr[newindex]; } } return String.Join("", str); } // Driver code public static void Main(String[] args) { String str = "geeksforgeeks"; Console.Write(print_next_vovel_String( str.ToCharArray())); } } // This code is contributed by Amit Katiyar
Javascript
<script> // JavaScript program to convert // all the vowels in the string // to the next vowel // Function to replace every vowel // with next vowel lexicographically function print_next_vovel_string(st) { // Storing the vowels in // the map with custom // numbers showing their index var m = {}; m["a"] = 0; m["e"] = 1; m["i"] = 2; m["o"] = 3; m["u"] = 4; var arr = ["a", "e", "i", "o", "u"]; var N = st.length; // Iterate over the string for (let i = 0; i < N; i++) { var c = st[i]; // If the current character // is a vowel // Find the index in Hash // and Replace it with next // vowel from Hash if (c === "a" || c === "e" || c === "i" || c === "o" || c === "u") { index = m[st[i]] + 1; newindex = index % 5; st = st.replace(st[i], arr[newindex]); } } return st; } // Driver function var st = "geeksforgeeks"; document.write(print_next_vovel_string(st)); </script>
giiksfurgiiks
Complejidad Temporal: O (N)
Espacio Auxiliar: O (1)
Publicación traducida automáticamente
Artículo escrito por sunilkannur98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA