题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
import sys
# from numpy.core.defchararray import isdigit
# for line in sys.stdin:
# a = line.split()
# print(int(a[0]) + int(a[1]))
# 判断该字符是否为数字,如果为数字则给前面加上一个星号
# 如果该数字前面的字符为数字,则该数字前面不加入星号
while True:
try:
str = input()
pre_single_str = ""
res = str
tmp_num = 0
for i, c in enumerate(str):
# 当前字符是数字
if c.isdigit():
# 当前字符是数字,上一个字符是数字,那么忽略
if pre_single_str.isdigit():
pass
# 当前字符是数字,上一个字符不是数字,加星号
else:
# 如果是手首字符,如果是中间字符两种情况
if pre_single_str == "":
res = "*" + res
tmp_num = tmp_num + 1
else:
res = res[: i + tmp_num] + "*" + res[i + tmp_num :]
tmp_num = tmp_num + 1
# 如果是最后一位那么在末尾增加*
if i == len(str) - 1:
res = res + "*"
# 如果当前字符不是数字
if c.isdigit() != True:
# 前面字符是数字,则在其前面加上*
if pre_single_str.isdigit():
res = res[: i + tmp_num] + "*" + res[i + tmp_num :]
tmp_num = tmp_num + 1
pre_single_str = c
print(res)
except:
break

科大讯飞公司氛围 425人发布


查看13道真题和解析