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:
s into an integer by replacing each letter with its position in the alphabet (i.e. replace 'a' with 1, 'b' with 2, ..., 'z' with 26).k times in total.For example, if s = "zbax" and k = 2, then the resulting integer would be 8 by the following operations:
"zbax" ➝ "(26)(2)(1)(24)" ➝ "262124" ➝ 262124262124 ➝ 2 + 6 + 2 + 1 + 2 + 4 ➝ 1717 ➝ 1 + 7 ➝ 8Return 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 <= 10s consists of lowercase English letters.This approach involves converting each character to its corresponding position in the alphabet and forming a numeric string. We then sum the digits of this number 'k' times to get the resulting integer.
The function sumOfDigitsAfterConvert converts the string s into a numeric representation of alphabet positions. The helper function digitSum computes the sum of digits of a given number string. The transformation step is repeated k times by repeatedly summing the digits of the number string.
C++
Java
Python
C#
JavaScript
Time Complexity: O(N + kM), where N is the length of the string and M is the number of digits in the transformed number.
Space Complexity: O(M), as we store the transformed number as a string.
This approach directly calculates the digit sum during the conversion of the string to a number by aggregating the sum of each digit representation, reducing the need for intermediate large integer string handling.
Here, the conversion and the first summing of digits are done simultaneously using modulo operations. This reduces the need for intermediate storage and allows for direct digit sum transformation.
C++
Java
Python
C#
JavaScript
Time Complexity: O(N + k*logM), where M is the intermediate sum value.
Space Complexity: O(1).
| Approach | Complexity |
|---|---|
| Map and Sum Technique | Time Complexity: O(N + kM), where N is the length of the string and M is the number of digits in the transformed number. |
| Direct Digit Sum Accumulation | Time Complexity: O(N + k*logM), where M is the intermediate sum value. |
1945. Sum of Digits of String After Convert | math | strings | Leetcode Daily Challenge • shashCode • 2,961 views views
Watch 9 more video solutions →Practice Sum of Digits of String After Convert with our built-in code editor and test cases.
Practice on FleetCode