Dada la string str de alfabetos en minúsculas, la tarea es encontrar el costo mínimo para cambiar la string de entrada en una string que contiene solo vocales. Cada consonante se cambia a las vocales más cercanas. El costo se define como la diferencia absoluta entre el valor ASCII de consonante y vocal.
Ejemplos:
Entrada: str = “abcde”
Salida: 4
Explicación:
Aquí, a y e ya son vocales pero b, c y d son consonantes. Entonces b, c y d se cambian a las vocales más cercanas como:
1. b –> a = |98 – 97| = 1,
2. c –> a = |99 – 97| = 2 o c –> e = |99 – 101| = 2 ( al mínimo el costo),
3. d –> e = |100 – 101| = 1.
Por lo tanto, el costo mínimo es 1 + 2 + 1 = 4.Entrada: str = “aaa”
Salida: 0
Explicación:
No hay consonante en la string.
Enfoque: La idea es atravesar la cuerda y reemplazar cada consonante con su vocal más cercana y agregar el costo como la diferencia entre las consonantes y la vocal cambiada. Imprime el costo después de todas las operaciones.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include<bits/stdc++.h> using namespace std; // Function to find the minimum cost int min_cost(string st) { // Store vowels string vow = "aeiou"; int cost = 0; // Loop for iteration of string for(int i = 0; i < st.size(); i++) { vector<int> costs; // Loop to calculate the cost for(int j = 0; j < 5; j++) costs.push_back(abs(st[i] - vow[j])); // Add minimum cost cost += *min_element(costs.begin(), costs.end()); } return cost; } // Driver Code int main() { // Given String string str = "abcde"; // Function Call cout << (min_cost(str)); } // This code is contributed by grand_master
Java
// Java program for the above approach import java.io.*; import java.util.*; class GFG{ // Function to find the minimum cost static int min_cost(String st) { // Store vowels String vow = "aeiou"; int cost = 0; // Loop for iteration of string for(int i = 0; i < st.length(); i++) { ArrayList<Integer> costs = new ArrayList<>(); // Loop to calculate the cost for(int j = 0; j < 5; j++) costs.add(Math.abs(st.charAt(i) - vow.charAt(j))); // Add minimum cost int minx = Integer.MAX_VALUE; for(int x : costs) { if(x < minx) { minx = x; } } cost += minx; } return cost; } // Driver Code public static void main(String[] args) { // Given string String str = "abcde"; // Function call System.out.println(min_cost(str)); } } // This code is contributed by rutvik_56
Python3
# Python3 program for above approach # Function to find the minimum cost def min_cost(st): # Store vowels vow = "aeiou" cost = 0 # Loop for iteration of string for i in range(len(st)): costs = [] # Loop to calculate the cost for j in range(5): costs.append(abs(ord(st[i])-ord(vow[j]))) # Add minimum cost cost += min(costs) return cost # Driver Code # Given String str = "abcde" # Function Call print(min_cost(str))
C#
// C# program for the above approach using System; using System.Collections.Generic; class GFG{ // Function to find the minimum cost static int min_cost(string st) { // Store vowels string vow = "aeiou"; int cost = 0; // Loop for iteration of string for(int i = 0; i < st.Length; i++) { List<int> costs = new List<int>(); // Loop to calculate the cost for(int j = 0; j < 5; j++) costs.Add(Math.Abs(st[i] - vow[j])); // Add minimum cost int minx = Int32.MaxValue; foreach(int x in costs) { if(x < minx) { minx = x; } } cost += minx; } return cost; } // Driver Code public static void Main() { // Given string string str = "abcde"; // Function call Console.WriteLine(min_cost(str)); } } // This code is contributed by code_hunt
Javascript
<script> // JavaScript program for above approach // Function to find the minimum cost function min_cost(st){ // Store vowels let vow = "aeiou" let cost = 0 // Loop for iteration of string for(let i=0;i<st.length;i++){ let costs = [] // Loop to calculate the cost for(let j = 0; j < 5; j++) costs.push(Math.abs(st.charCodeAt(i)-vow.charCodeAt(j))) // Add minimum cost cost += Math.min(...costs) } return cost } // Driver Code // Given String let str = "abcde" // Function Call document.write(min_cost(str),"</br>") // This code is contributed by shinjanpatra </script>
4
Complejidad de tiempo: O(N), donde N es la longitud de la string.
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por deepanshu_rustagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA