题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
def func(s:str): new_str = s num = 0 for i in range(1,len(s)): if (s[i-1].isdigit() == False and s[i].isdigit()) or (s[i-1].isdigit() and s[i].isdigit()==False): new_str = new_str[:i+num]+'*'+new_str[i+num:] num+=1 if s[0].isdigit(): new_str = '*'+new_str if s[-1].isdigit(): new_str+='*' return new_str print(func(input()))
首先另存一个new_str用于后续修改,原字符串用于遍历;
对字符串遍历,检索到“字符+数字”或“数字+字符”组合时,就在中间插入一个“*”,生成新的new_str;
由于每插入一个“*”,new_str的后续字符串相对于原字符串索引数会加1,此处,定义一个num修改索引值;
最后,发现首尾出现数字时,两边由于无法添加“*”,因此对首尾处数字单独处理