Formatted question description: https://leetcode.ca/all/1945.html

# 1945. Sum of Digits of String After Convert

## Level

Easy

## Description

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.

**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 <= 100`

`1 <= k <= 10`

`s`

consists of lowercase English letters.

## Solution

Since `k >= 1`

, at least one transform operation is needed. Therefore, transform `s`

into an integer, which is guaranteed to fit in a 32-bit integer. Then do the transform for another `k - 1`

times.

```
class Solution {
public int getLucky(String s, int k) {
StringBuffer sb = new StringBuffer();
int length = s.length();
for (int i = 0; i < length; i++) {
char c = s.charAt(i);
int num = c - 'a' + 1;
sb.append(num);
}
int sum = 0;
int digitLength = sb.length();
for (int i = 0; i < digitLength; i++) {
int digit = sb.charAt(i) - '0';
sum += digit;
}
for (int i = 2; i <= k; i++)
sum = convert(sum);
return sum;
}
public int convert(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
}
```