3361. Shift Distance Between Two Strings
3361. Shift Distance Between Two Strings
Description
You are given two strings s and t of the same length, and two integer arrays nextCost and previousCost.
In one operation, you can pick any index i of s, and perform either one  of the following actions:
- Shift s[i]to the next letter in the alphabet. Ifs[i] == 'z', you should replace it with'a'. This operation costsnextCost[j]wherejis the index ofs[i]in the alphabet.
- Shift s[i]to the previous letter in the alphabet. Ifs[i] == 'a', you should replace it with'z'. This operation costspreviousCost[j]wherejis the index ofs[i]in the alphabet.
The shift distance  is the minimum  total cost of operations required to transform s into t.
Return the shift distance  from s to t.
Example 1:
| 1 | Input: s = "abab", t = "baba", nextCost = [100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], previousCost = [1,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] | 
Explanation:
- We choose index i = 0and shifts[0]25 times to the previous character for a total cost of 1.
- We choose index i = 1and shifts[1]25 times to the next character for a total cost of 0.
- We choose index i = 2and shifts[2]25 times to the previous character for a total cost of 1.
- We choose index i = 3and shifts[3]25 times to the next character for a total cost of 0.
Example 2:
| 1 | Input: s = "leet", t = "code", nextCost = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1], previousCost = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] | 
Output: 31
Explanation:
- We choose index i = 0and shifts[0]9 times to the previous character for a total cost of 9.
- We choose index i = 1and shifts[1]10 times to the next character for a total cost of 10.
- We choose index i = 2and shifts[2]1 time to the previous character for a total cost of 1.
- We choose index i = 3and shifts[3]11 times to the next character for a total cost of 11.
Constraints:
- 1 <= s.length == t.length <= 10^5
- sand- tconsist only of lowercase English letters.
- nextCost.length == previousCost.length == 26
- 0 <= nextCost[i], previousCost[i] <= 10^9
Hints/Notes
- 2024/11/30
- preSum
- 0x3Fâs solution(checked)
- Biweekly Contest 144
Solution
Language: C++
O(n) solution
| 1 | class Solution { | 
| 1 | class Solution { |