题解 | #表示数字#

表示数字

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修改索引值;

最后,发现首尾出现数字时,两边由于无法添加“*”,因此对首尾处数字单独处理

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务