本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1844. 将所有数字用字符替换
- 题号:力扣1844
- 知识点:字符串 ASCII
- 目标完成度:5/150
- 总结
题干:
思路:
- 1.解题干扰项:题目中的
shift相关的描述当作不存在即可 - 2.主要难点在于整型数与ASCII字符的转换
- 3.C++中,字符型数字转int
'1' - '0' == 1;得到第3个英文字母表字母的方法c == 'a' + 2 - 4.python中,ord函数可以根据字符得到该字符在ASCII表中的索引,chr可以根据索引得到字符,
"".jion(List)可以将列表转为str
# C++
class Solution {
public:
string replaceDigits(string s) {
int i;
int dist = 0;
for(i = 1; i<s.size(); i+=2){
dist = (s[i-1]-'a') + (s[i] - '0');
s[i] = 'a' + dist;
}
return s;
}
};
class Solution:
def replaceDigits(self, s: str) -> str:
s_list = list(s)
for i in range(1, len(s), 2):
s_list[i] = chr(ord(s_list[i-1]) + int(s_list[i]))
# ret = str(s_list).replace("'", "")
# ret = ret.replace("[", "").replace(']', '').replace(', ','')
# return ret
return "".join(s_list)