LeetCode 1945. 字符串转化后的各位数字之和缩略图

给你一个由小写字母组成的字符串 s ,以及一个整数 k 。

首先,用字母在字母表中的位置替换该字母,将 s 转化 为一个整数(也就是,'a' 用 1 替换,'b' 用 2 替换,… 'z' 用 26 替换)。接着,将整数 转换 为其 各位数字之和 。共重复 转换 操作 k 次 。

例如,如果 s = "zbax" 且 k = 2 ,那么执行下述步骤后得到的结果是整数 8 :

  • 转化:"zbax" ➝ "(26)(2)(1)(24)" ➝ "262124" ➝ 262124
  • 转换 #1262124 ➝ 2 + 6 + 2 + 1 + 2 + 4 ➝ 17
  • 转换 #217 ➝ 1 + 7 ➝ 8

返回执行上述操作后得到的结果整数。

1945. 字符串转化后的各位数字之和 – 力扣(Leetcode)

LeetCode 1945. 字符串转化后的各位数字之和插图
OpenCV步步精深-可心科创工作室

思路:

直接哈希表匹配出来按照题意做变换就行了。

python3实现:

class Solution:
    def getLucky(self, s: str, k: int) -> int:
        # 直接哈希表匹配出来转换一下就行了
        letter_list = [chr(i) for i in range(97, 123)]
        result = ""
        for each in s:
            result += str(letter_list.index(each)+1)
        
        if k == 1:
            return sum([int(elem) for elem in result])
        
        for j in range(k):
            result = list(result)
            print("r:",result)
            result = str(sum([int(elem) for elem in result]))

        return int(result)
LeetCode 1945. 字符串转化后的各位数字之和插图1
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注