1844. 将所有数字用字符替换

127 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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)