题解 | #表示数字#
表示数字
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))