Sum of Digits of String After Convert

easy math string

Problem

Convert s to digits (a=1..z=26), concatenate, then replace by digit sum k times. Return the final number.

Inputs = "iiii", k = 1
Output36
"iiii" → "9999" → 9+9+9+9 = 36.

def get_lucky(s, k):
    digits = ''.join(str(ord(c) - 96) for c in s)
    for _ in range(k):
        digits = str(sum(int(d) for d in digits))
    return int(digits)
function getLucky(s, k) {
  let d = '';
  for (const c of s) d += (c.charCodeAt(0) - 96);
  for (let i = 0; i < k; i++) {
    let sum = 0;
    for (const c of d) sum += +c;
    d = String(sum);
  }
  return Number(d);
}
class Solution {
    public int getLucky(String s, int k) {
        StringBuilder d = new StringBuilder();
        for (char c : s.toCharArray()) d.append(c - 'a' + 1);
        String cur = d.toString();
        for (int i = 0; i < k; i++) {
            int sum = 0;
            for (char c : cur.toCharArray()) sum += c - '0';
            cur = String.valueOf(sum);
        }
        return Integer.parseInt(cur);
    }
}
int getLucky(string s, int k) {
    string d;
    for (char c : s) d += to_string(c - 'a' + 1);
    for (int i = 0; i < k; i++) {
        int sum = 0;
        for (char c : d) sum += c - '0';
        d = to_string(sum);
    }
    return stoi(d);
}
Time: O(k·n) Space: O(n)