“This is the 9th day of my participation in the Gwen Challenge in November. Check out the details: The Last Gwen Challenge in 2021.”

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:

  • The Convert: “zbax ➝” (26) and (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 ➝ 36 Thus the resulting integer is 36.Copy the 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 - the 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 the code

Example 3:

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

Note:

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

parsing

A string s and an integer k are given.

First we convert every letter in the string S to a number, for example a to 1, b to 2, and so on. The resulting numbers are then concatenated into a string from left to right, and each number in the string is added to obtain and replace the string. This operation is performed k times, and the final result is returned. The idea is simple:

  • Initialization result result is an empty string
  • Converts each character in S to a numeric string concatenated sequentially after result
  • While loop k times, change each character into the sum after adding numbers, and then into a string assigned to result, at the same time k minus one, continue the loop operation
  • The loop returns result

answer

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 the code

The results

Runtime: 10 ms, faster than 96.63% of Python online submissions for Sum of String After Convert. Memory Usage: Submissions in Python online submissions for Sum of Digits of String After Convert.Copy the code

Original link: leetcode.com/problems/su…

Your support is my biggest motivation