LeetCode简单题之字符串转化后的各位数字之和
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之字符串转化后的各位数字之和
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目
給你一個由小寫字母組成的字符串 s ,以及一個整數(shù) k 。
首先,用字母在字母表中的位置替換該字母,將 s 轉(zhuǎn)化 為一個整數(shù)(也就是,‘a(chǎn)’ 用 1 替換,‘b’ 用 2 替換,… ‘z’ 用 26 替換)。接著,將整數(shù) 轉(zhuǎn)換 為其 各位數(shù)字之和 。共重復(fù) 轉(zhuǎn)換 操作 k 次 。
例如,如果 s = “zbax” 且 k = 2 ,那么執(zhí)行下述步驟后得到的結(jié)果是整數(shù) 8 :
轉(zhuǎn)化:“zbax” ? “(26)(2)(1)(24)” ? “262124” ? 262124
轉(zhuǎn)換 #1:262124 ? 2 + 6 + 2 + 1 + 2 + 4 ? 17
轉(zhuǎn)換 #2:17 ? 1 + 7 ? 8
返回執(zhí)行上述操作后得到的結(jié)果整數(shù)。
示例 1:
輸入:s = “iiii”, k = 1
輸出:36
解釋:操作如下:
- 轉(zhuǎn)化:“iiii” ? “(9)(9)(9)(9)” ? “9999” ? 9999
- 轉(zhuǎn)換 #1:9999 ? 9 + 9 + 9 + 9 ? 36
因此,結(jié)果整數(shù)為 36 。
示例 2:
輸入:s = “l(fā)eetcode”, k = 2
輸出:6
解釋:操作如下: - 轉(zhuǎn)化:“l(fā)eetcode” ? “(12)(5)(5)(20)(3)(15)(4)(5)” ? “12552031545” ? 12552031545
- 轉(zhuǎn)換 #1:12552031545 ? 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 ? 33
- 轉(zhuǎn)換 #2:33 ? 3 + 3 ? 6
因此,結(jié)果整數(shù)為 6 。
提示:
1 <= s.length <= 100
1 <= k <= 10
s 由小寫英文字母組成
來源:力扣(LeetCode)
解題思路
??將每個字符對應(yīng)到相應(yīng)的數(shù)值,然后拼接數(shù)字進行k輪操作,操作定義為將一個整數(shù)的各個位拆開相加。
class Solution:def getLucky(self, s: str, k: int) -> int:def operating(num):s=0while num>0:s+=num%10num//=10return sS=''for i in s:S+=str(ord(i)-96)for i in range(k):S=operating(int(S))return S
總結(jié)
以上是生活随笔為你收集整理的LeetCode简单题之字符串转化后的各位数字之和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode中等题之特殊等价字符串组
- 下一篇: LeetCode简单题之下载插件