Given a string S of length N consisting of lowercase alphabets, the task is to find the minimum number of operations required to make all the characters of the string S the same. In each operation, choose any character and replace it with its next or previous alphabet.
Note: The alphabets are considered to be cyclic i.e., Next character of z is considered to be a and previous character of a is considered to be z.
Input: S = “abc”
To minimize the number of operation change all characters of the strings to ‘b’.
Operation 1: Change a to b.
Operation 2: Change c to b.
Input: S = “zzza”
To minimize the number of operation change all characters of the strings to ‘z’.
Operation 1: Change a to z.
Approach: To solve the problem, the idea is to calculate the cost of making all the characters equal to each alphabets, ‘a’ to ‘z’, one by one and print the minimum cost required for any of the conversions. Follow the steps below to solve the problem:
- Initialize the variable min with a large value which will store the minimum answer.
- Traverse over the range [0, 25] where i represent (i + 1)thalphabet from ‘a’ to ‘z’ and perform the following steps:
- Initialize variable cnt initialized as 0 which will store the answer to convert all character of string same.
- Traverse the given string from j = 0 to (N – 1) and add min(abs(i + ‘a’ – S[j]), 26 – abs(i + ‘a’ – S[j])) into cnt.
- After the above step, update min to a minimum of min and cnt.
- After traversing the string for each character, print the value of min as the minimum count of operations.
Below is the implementation of the above approach:
Time Complexity: O(N * 26)
Auxiliary Space: O(N)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Minimize replacements or swapping of same indexed characters required to make two given strings palindromic
- Minimize replacement of characters to its nearest alphabet to make a string palindromic
- Minimize the number of replacements to get a string with same number of 'a', 'b' and 'c' in it
- Count of replacements required to make the sum of all Pairs of given type from the Array equal
- Minimum replacements to make adjacent characters unequal in a ternary string
- Minimum replacements to make adjacent characters unequal in a ternary string | Set-2
- Minimum replacements in a string to make adjacent characters unequal
- Minimize steps required to make all array elements same by adding 1, 2 or 5
- Minimum replacements such that the difference between the index of the same characters is divisible by 3
- Minimize characters to be changed to make the left and right rotation of a string same
- Min flips of continuous characters to make all characters same in a string
- Count characters at same position as in English alphabet
- Minimum replacements required to obtain a K-periodic palindromic string
- Count minimum character replacements required such that given string satisfies the given conditions
- Minimum characters to be replaced to make frequency of all characters same
- Minimize difference between maximum and minimum of Array by at most K replacements
- Minimum number of replacements to make the binary string alternating | Set 2
- Elements greater than the previous and next element in an Array
- Maximum element in an array such that its previous and next element product is maximum
- Convert string X to an anagram of string Y with minimum replacements
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.