【每日一题Day57】LC1945字符串转化后的个位数字之和 | 模拟

简介: 思路:由于k一定大于0,因此可以边遍历字符串,边求出第一次转化后的数位之和,然后使用for循环遍历继续求出第k次的数位之和

字符串转化后的个位数字之和【LC1945】


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.


第三天啦 还没有烧


  • 思路:由于k一定大于0,因此可以边遍历字符串,边求出第一次转化后的数位之和,然后使用for循环遍历继续求出第k次的数位之和


  • 实现


class Solution {
    public int getLucky(String s, int k) {
        int res = 0;
        for (int i = 0; i < s.length(); i++){
            res += getSumOfDigits(s.charAt(i) - 'a' + 1);
        }
        for (int i = 1; i < k; i++){
            res = getSumOfDigits(res);
        }
        return res;
    }
    public int getSumOfDigits(int n){
        int res = 0;
        while (n % 10 > 0 || n / 10 > 0){
            res += n % 10;
            n /= 10;
        }
        return res;
    }
}


。复杂度


  • 时间复杂度:O ( n )
  • 空间复杂度:O ( 1 )
目录
相关文章
|
6月前
【每日一题Day127】LC1238循环码排列 | 格雷码构造 位运算
【每日一题Day127】LC1238循环码排列 | 格雷码构造 位运算
51 0
【每日一题Day127】LC1238循环码排列 | 格雷码构造 位运算
|
6月前
【每日一题Day268】LC415字符串相加 | 模拟
【每日一题Day268】LC415字符串相加 | 模拟
46 0
|
6月前
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
【每日一题Day159】LC1638统计只差一个字符的子串数目 | 枚举
38 0
|
6月前
【每日一题Day290】LC1281整数的各位积和之差 | 模拟
【每日一题Day290】LC1281整数的各位积和之差 | 模拟
41 0
|
6月前
【每日一题Day210】LC1073负二进制数相加 | 模拟
【每日一题Day210】LC1073负二进制数相加 | 模拟
35 0
|
6月前
【每日一题Day191】LC2423删除字符使频率相同 | 枚举 分类讨论
【每日一题Day191】LC2423删除字符使频率相同 | 枚举 分类讨论
49 0
|
6月前
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
50 0
|
6月前
【每日一题Day371】LC2586统计范围内的元音字符串数 | 模拟
【每日一题Day371】LC2586统计范围内的元音字符串数 | 模拟
54 1
|
6月前
【每日一题Day152】LC1012至少有1位重复的数字 | 数位dp
【每日一题Day152】LC1012至少有1位重复的数字 | 数位dp
50 0
|
6月前
【每日一题Day299】LC2235两整数相加
【每日一题Day299】LC2235两整数相加
31 0