题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

# 解题思路:
# 1、迭代字符串,每次迭代出一个完整的数字后保存起来
# 2、使用*对第一步得到的数字格式化
# 3、重复步骤1,2格式化所有数字
# 4、特殊处理最后一个字符如果也是数字的情况


s = input().strip()

def format_string(chars):
    result = [] # 存储最终结果
    number_buffer = []  # 暂存数字
    number_flag = False     # 标记当前字符是否是数字

    for char in chars:
        # 当遇到数字
        if char.isdigit():
            number_buffer.append(char)
            number_flag = True
        else:   # 遇到字母的时候,先把前面暂存的数字格式化并保存到结果中,然后追加当前的字母。
            if number_flag:
                result.append('*' + ''.join(number_buffer) + '*')
                number_buffer = []  # 重置数字缓存区
                number_flag = False
            result.append(char) 
            # ['J', 'k', 'd', 'i', '*234*', 'k', 'l', 'o', 'w', 'e', '*90*','a', '*3*']

            
    # 处理最后一个字符,最后一个字符是数字的时候number_buffer不为空,需要追加到result
    if number_flag:
        result.append('*' + ''.join(number_buffer) + '*') 
    
    return result


if __name__ == '__main__':
    result = format_string(s)
    print(''.join(result))

全部评论

相关推荐

2025-12-15 19:41
已编辑
广东工业大学 前端工程师
smile丶snow:尽量保证的一张a4纸吧。为什么工作经历只有公司?如果项目经历是工作里面的,应该写到工作经历里的吧。没有写项目职责,项目全是一个人写的吗?标题大小也好怪。两个项目的分割看不出来是,它和那些项目成功字体是一样大的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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