3675. Minimum Operations to Transform String
You are given a string s consisting only of lowercase English letters.
You can perform the following operation any number of times (including zero):
-
Choose any character
cin the string and replace every occurrence ofcwith the next lowercase letter in the English alphabet.
Return the minimum number of operations required to transform s into a string consisting of only 'a' characters.
Note: Consider the alphabet as circular, thus 'a' comes after 'z'.
Example 1:
Input: s = "yz"
Output: 2
Explanation:
- Change
'y'to'z'to get"zz". - Change
'z'to'a'to get"aa". - Thus, the answer is 2.
Example 2:
Input: s = "a"
Output: 0
Explanation:
- The string
"a"only consists of'a' characters. Thus, the answer is 0.
Constraints:
1 <= s.length <= 5 * 105sconsists only of lowercase English letters.
StringGreedy
Hints
Hint 1
Each operation shifts every occurrence of a chosen character forward by one in the alphabet (with wrap-around).
Hint 2
For any character
c, the number of moves required to turn it into 'a' is (26 - (ord(c) - ord('a'))) % 26.Hint 3
You can plan operations so characters that need more shifts are advanced first and cause merges that don't increase the total number of moves; therefore the minimum number of moves equals the maximum, over characters appearing in
s, of (26 - (ord(c) - ord('a'))) % 26.Preparing judge…