Talentd
FleetCode

3675. Minimum Operations to Transform String

Medium61.9% acceptance

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 c in the string and replace every occurrence of c with 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 * 105
  • s consists only of lowercase English letters.

Hints open one at a time

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.
7:50
Still stuck?Read the written solution, or watch a walkthrough.
Open solution
Loading editor…
1class Solution:
2 def minOperations(self, s: str) -> int:
3
Starter codePython 3Spaces: 4
Examples
Input
"yz"
Input
"a"
Your code is saved on this device.Solution