当前位置:网站首页>5823. 字符串转化后的各位数字之和
5823. 字符串转化后的各位数字之和
2022-08-09 03:15:00 【田园诗人之园】
给你一个由小写字母组成的字符串 s
,以及一个整数 k
。
首先,用字母在字母表中的位置替换该字母,将 s
转化 为一个整数(也就是,'a'
用 1
替换,'b'
用 2
替换,... 'z'
用 26
替换)。接着,将整数 转换 为其 各位数字之和 。共重复 转换 操作 k
次 。
例如,如果 s = "zbax"
且 k = 2
,那么执行下述步骤后得到的结果是整数 8
:
- 转化:
"zbax" * "(26)(2)(1)(24)" * "262124" * 262124
- 转换 #1:
262124 * 2 + 6 + 2 + 1 + 2 + 4 * 17
- 转换 #2:
17 * 1 + 7 * 8
返回执行上述操作后得到的结果整数。
示例 1:
输入:s = "iiii", k = 1 输出:36 解释:操作如下: - 转化:"iiii" * "(9)(9)(9)(9)" * "9999" * 9999 - 转换 #1:9999 * 9 + 9 + 9 + 9 * 36 因此,结果整数为 36 。
示例 2:
输入:s = "leetcode", k = 2 输出:6 解释:操作如下: - 转化:"leetcode" * "(12)(5)(5)(20)(3)(15)(4)(5)" * "12552031545" * 12552031545 - 转换 #1:12552031545 * 1 + 2 + 5 + 5 + 2 + 0 + 3 + 1 + 5 + 4 + 5 * 33 - 转换 #2:33 * 3 + 3 * 6 因此,结果整数为 6 。
提示:
1 <= s.length <= 100
1 <= k <= 10
s
由小写英文字母组成
int getLucky(char * s, int k){
int ans = 0;
int sum = 0;
int res[100] = {0};
int len = strlen(s);
for (int i = 0; i < len; i++) {
res[i] = s[i] - 'a' + 1;
if (res[i] >= 10) {
sum += res[i]/10 + res[i]%10;
}
else
{
sum += res[i];
}
}
while (k > 1) {
if (sum >= 10) {
while (sum > 0) {
ans += sum % 10;
sum /= 10;
}
sum = ans;
k--;
}
else {
k--;
}
ans = 0;
}
return sum;
}
边栏推荐
猜你喜欢
随机推荐
sql语句实现按顺序排序而不是拼音首字母排序
光刻机随感
C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.10 轻松一下---国际C语言混乱代码大赛
powershell 执行策略
新型双功能螯合剂NOTA及其衍生物CAS号:147597-66-8p-SCN-Bn-NOTA
浅聊一下那些营销工具—优惠券
【es6】教程 Symbol数据以及迭代器和生成器
作为常用的荧光标记试剂Cy5 亚磷酰胺(CAS号:182873-67-2)有哪些特点了?
SQL注入(3)
深度学习——以天气识别为例,探讨如何保存神经网络模型
Kubernetes:(十四)安全机制(一定要做好安全措施哦)
hcip MPLS 实验
Day021 图书管理系统(对象和数组)
net core 读取sqlserver所有表转为json
365天挑战LeetCode1000题——Day 051 特殊的二进制序列 分治
VMware不正常关机
SQL注入(4)
pytorch 自定义dataset
C语言力扣第56题之合并区间。排序+双指针
opencv学习入门