题目描述
将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变
public static String MarkNum(String pInStr)
{
return null;
}
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
思路:前后如果分别是数字和字母就需要添加*,需要考虑的三种特殊情况是:1.第一个是数字,最后一个是字母;2.第一个是字母,最后一个是数字;3.第一个和最后一个都是数字。
def func(str1):
loc = []
res = ""
if(len(str1)==1):
if(str1[0]<='9' and str1[0]>='0'):
return '*'+str1+'*'
else:
return str1
else:
for i in range(len(str1)-1):
pre = str1[i]
aft = str1[i+1]
if((pre>'9' and (aft<='9' and aft>='0')) or (aft>'9' and (pre<='9' and pre>='0'))):
loc.append(i)
for i in range(len(str1)):
if(i in loc):
res = res + str1[i] + "*"
else:
res = res + str1[i]
if(len(loc)%2!=0):
if(res[0] > '9'):
res = res + '*'
else:
res = '*' + res
if(res[0]>='0' and res[0]<='9' and res[len(res)-1]>='0' and res[len(res)-1]<='9'):
res = '*' + res + '*'
return res
while True:
try:
str1 = input()
print(func(str1))
except:
break