# leetcode 1945. Sum of Digits of String After Convert（python）

2022-01-31 06:03:32

「 This is my participation 11 The fourth of the yuegengwen challenge 9 God , Check out the activity details ：2021 One last more challenge

### describe

You are given a string s consisting of lowercase English letters, and an integer k.

First, convert 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). Then, transform the integer by replacing it with the sum of its digits. Repeat the transform operation k times 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.
Copy code ``````

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.
Copy code ``````

Example 3:

``````Input: s = "zbax", k = 2
Output: 8
Copy code ``````

Note:

``````1 <= s.length <= 100
1 <= k <= 10
s consists of lowercase English letters.
Copy code ``````

### analysis

According to the meaning , Is to give a string that is all lowercase English letters s , And an integer k .

First, let's put the string s Every letter in the is converted into a number , for example a To 1 ,b To 2 , And so on . Then splice the obtained numbers from left to right into a string , Then add each number in the string to get and replace the string , Do this k Time , Return the final result . The idea is simple ：

• Initialization result result Is an empty string
• take s Each character in is converted into a numeric string and spliced in order result after
• while loop k Time , The sum obtained by adding each character into a number , Then change it into a string and assign it to result , meanwhile k Minus one , Continue to cycle through the operation
• Loop result return result

``````class Solution(object):
def getLucky(self, s, k):
"""
:type s: str
:type k: int
:rtype: int
"""
result = ""
for i in s:
result += str(ord(i)-96)
while k:
result = str(sum([int(c) for c in result]))
k-=1
return result

Copy code ``````

### Running results

``````Runtime: 20 ms, faster than 96.63% of Python online submissions for Sum of Digits of String After Convert.
Memory Usage: 13.6 MB, less than 10.11% of Python online submissions for Sum of Digits of String After Convert.
Copy code ``````