1945. Sum of Digits of String After Convert
Description
You are given a string s consisting of lowercase English letters, and an integer k. Your task is to convert the string into an integer by a special process, and then transform it by summing its digits repeatedly k times. More specifically, perform the following steps:
- Convert
sinto an integer by replacing each letter with its position in the alphabet (i.e. replace'a'with1,'b'with2, ...,'z'with26). - Transform the integer by replacing it with the sum of its digits.
- Repeat the transform operation (step 2)
ktimes in total.
For example, if s = "zbax" and k = 2, then the resulting integer would be 8 by the following operations:
- Convert:
"zbax" β "(26)(2)(1)(24)" β "262124" β 262124 - Transform #1:
262124 β 2 + 6 + 2 + 1 + 2 + 4 β 17 - Transform #2:
17 β 1 + 7 β 8
Return the resulting integer after performing the operations described above.
Example 1:
Input: s = "iiii", k = 1
Output: 36
Explanation:
The operations are as follows:
- Convert: "iiii" β "(9)(9)(9)(9)" β "9999" β 9999
- Transform #1: 9999 β 9 + 9 + 9 + 9 β 36
Thus the resulting integer is 36.
Example 2:
Input: s = "leetcode", k = 2
Output: 6
Explanation:
The operations are as follows:
- Convert: "leetcode" β "(12)(5)(5)(20)(3)(15)(4)(5)" β "12552031545" β 12552031545
- Transform #1: 12552031545 β 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 β 33
- Transform #2: 33 β 3 + 3 β 6
Thus the resulting integer is 6.
Example 3:
Input: s = "zbax", k = 2
Output: 8
Constraints:
1 <= s.length <= 1001 <= k <= 10sconsists of lowercase English letters.
Solutions
Solution 1: Simulation
We can simulate the process described in the problem.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Here, \(n\) is the length of the string \(s\).
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |