题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
import sys for line in sys.stdin: s = '' line = line.strip() n = len(line) if n==1:#如果字符串的长度为1,判断是否为数字,是数字则前后加* if line[0].isdigit(): s = '*'+line+'*' else: s = line else: for i in range(n): if i==0 and line[i].isdigit():#如果当前字符为第一个字符且为数字 if line[i+1].isdigit():#后一个字符也是数字,则只在前面加* s += ('*'+line[i]) else:#后一个字符不是数字,前后都加* s += ('*'+line[i]+'*') elif i==(n-1) and line[i].isdigit():#如果当前字符为最后一个字符且为数字 if line[i-1].isdigit():#前一个字符为数字,只在后面加* s += (line[i]+'*') else:#前一个字符不是数字,前后都加* s += ('*'+line[i]+'*') elif line[i].isdigit(): if line[i-1].isdigit() and line[i+1].isdigit(): s += line[i] elif not line[i-1].isdigit() and line[i+1].isdigit():#当前字符为数字,且前一个字符不是数字,后一个字符是数字,只在前面加* s += ('*'+line[i]) elif line[i-1].isdigit() and not line[i+1].isdigit():#当前字符为数字,且前一个字符也是数字,后一个字符不是数字,只在后面加* s += (line[i]+'*') else:#当前字符为数字,前后字符都不是数字,前后都加* s += ('*'+line[i]+'*') else:#当前字符不是数字,不加* s += line[i] print(s)