題目描述
将一個字元中所有出現的數字前後加上符号“*”,其他字元保持不變
public static String MarkNum(String pInStr)
{
return null;
}
輸入描述:
輸入一個字元串
輸出描述:
字元中所有出現的數字前後加上符号“*”,其他字元保持不變
示例1
輸入
Jkdi234klowe90a3
輸出
Jkdi*234*klowe*90*a*3*
思路:前後如果分别是數字和字母就需要添加*,需要考慮的三種特殊情況是: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