描述:将一个字符中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
数据范围:字符串长度满足 1 \le n \le 100 \1≤n≤100
输入描述:输入一个字符串
输出描述:字符中所有出现的数字前后加上符号“*”,其他字符保持不变
输入:Jkdi234klowe90a3
输出:Jkdi*234*klowe*90*a*3*
# 最初思路
# 1/input,strip字符串代入函数
# 2/for循环遍历每个字符串,记录pre,cur,next值
# 3/当前值为数字list0-9对应的str,初始化
# 4/判断pre是否为数字,不是则改*;是则不处理;
# 5/判断next是否为数字,是则改*;不是则不处理;
# 6/每个处理的结果写入新str-res中
# 被虐后思路
# 1/isdigit不知道,只好zeronine构建0-9的str
# 2/遇到【1**3】实际应该输出【*1****3*】,则首位先判断是否数字,是则先加个*到res
# 3/遇到结尾最后一个字符没处理,则最后一个字符单独判断ifelse是否数字,是则末尾+*
# 4/中间判断从0开始直到-1结束,因为有判断i+1,所以只能-1结束否则报错超出range
# 5/当前字符串不为数字且后一个字符串为数字,则当前字符加上后再加*
# 6/当前为数字且后续为字符,则当前res加i后,再加个*
# 7/其余情况则只加当前的i值
def exam(instr):
ins = instr
zn = [str(i) for i in range(0,10)]
# 1/isdigit不知道,只好zeronine构建0-9的str
# print(zn)
# ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
res = ''
if ins[0] in zn:
res += '*'
# 2/遇到【1**3】实际应该输出【*1****3*】,则首位先判断是否数字,是则先加个*到res
for i in range(len(ins)-1):
# 4/中间判断从0开始直到-1结束,因为有判断i+1,所以只能-1结束否则报错超出range
if ins[i+1] in zn and ins[i] not in zn:
# 5/当前字符串不为数字且后一个字符串为数字,则当前字符加上后再加*
res += ins[i]
res += '*'
elif ins[i+1] not in zn and ins[i] in zn:
# 6/当前为数字且后续为字符,则当前res加i后,再加个*
res += ins[i]
res += '*'
else:
res += ins[i]
# print(res)
# 3/遇到结尾最后一个字符没处理,则最后一个字符单独判断ifelse是否数字,是则末尾+*
if ins[-1] in zn:
res += ins[-1] + '*'
else:
res += ins[-1]
print(res)
instr = input()
exam(instr=instr)