将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
数据范围:字符串长度满足
print(''.join(['牛'+i+'牛' if i.isdigit() else i for i in input()]).replace('牛牛','').replace('牛','*'))
S=[x for x in input()] S1=[x for x in S] n=0 insert_num=0 for i in range(len(S1)): if S1[i].isdigit()==True: n+=1 # 一组数字的开头插入* if n==1: S.insert(insert_num+i,'*') insert_num+=1 else: if i<len(S1)-1: continue #字符串最后一组是数字 if n>0 and i==len(S1)-1: S.append('*') else: #非末尾的一组数字结束后插入* if n>0: S.insert(insert_num+i,'*') insert_num+=1 n=0 print("".join(S))
while True: try: s = input() ls = [] # 用可变的列表来存储输出 for i in range(len(s)): if not s[i].isnumeric(): ls.append(s[i]) else: if (not s[i-1].isnumeric())&nbs***bsp;i==0: # 注意包含第一个字符就是数字的情况 ls.append('*') for j in range(i, len(s)): if s[j].isnumeric(): ls.append(s[j]) else: ls.append('*') break if ls[len(ls)-1].isnumeric(): # 检验最后一个字符是否为数字 ls.append('*') print(*ls, sep='') except: break
import sys input_list = [] for line in sys.stdin: a = line.split() input_list.append(a) string_input = input_list[0][0] #first_sign用来标记当遇到第一个数字的情况 first_sign = 0 point=0 while(point < len(string_input)): #如果遇到数字,并且标记为0,说明第一次进入,需要前置增加一个星号,并改变标记为1 if(first_sign == 0 and string_input[point].isdigit()): string_input = string_input[:point] + "*" + string_input[point:] first_sign = 1 point = point+1 #如果遇到数字,并且标记为1,说明处于连续数字区间,直接移动 elif(first_sign == 1 and string_input[point].isdigit()): point = point+1 #如果没有遇到数字,并且标记为1,说明刚刚走出连续数字区间,要给上一位增加星号 elif(first_sign == 1 and not string_input[point].isdigit()): string_input = string_input[:point] + "*" + string_input[point:] first_sign = 0 point = point+1 #如果没有遇到数字,并且标记为0,普通情况,直接+1 elif(first_sign == 0 and not string_input[point].isdigit()): point = point +1 #上面的处理是没有考虑数字在最后的,需要额外判断 if(string_input[-1].isdigit()): string_input = string_input+"*" print(string_input)
s = input() l = [] # 新建列表,依次加入并判断是否加星 if s[0].isdigit(): l.append('*' + s[0]) else: l.append(s[0]) # 先判断第一位 for i in range(1,len(s)): if s[i - 1].isdigit() and not s[i].isdigit(): # 前数本非数,等于数尾加星 l.append('*' + s[i]) elif not s[i - 1].isdigit() and s[i].isdigit(): # 前非本数,等于数前加星 l.append('*' + s[i]) else: l.append(s[i]) # 前数本数不变,前非本非不变 if s[-1].isdigit(): l.append('*') # 尾数加星,尾非数不加 print(''.join(l))
while True: try: data = input() res =[] for x in data: if x.isdigit(): res.append('1 *'+x+'1 *') else: res.append(x) print(''.join(res).replace('1 *1 *', '').replace('1 *', '*')) except: break将每个数字都换成带*的特殊字符,然后再替换掉重叠的字符和特定的字符
s=str(input()) l=[] for i in range(len(s)): if s[i].isdigit(): l.append('$'+s[i]+'$') else: l.append(s[i]) x='' for j in l: x+=j #&nbs***bsp;x=''.join(l) #if '**' not in s: # x=x.replace('**','') # print(x) #else: print(x) #特殊情况2种 #example 1**3 #example Y1^*6**26* x=x.replace('$$','') x=x.replace('$','*') print(x)
while True: try: a=input() b=[i for i in a] n=0 for i in range(len(a)): if a[i].isdigit(): if i==0: b.insert(0,'*') n+=1 if i!=0: if a[i-1].isdigit()==False: b.insert(i+n,'*') n+=1 if i!=len(a)-1: if a[i+1].isdigit()==False: b.insert(i+n+1,'*') n+=1 if i==len(a)-1: b.insert(i+n+1,'*') n+=1 print (''.join(b)) except Exception as a : break
s = list(input()) ls =[] for i in range(len(s)): if s[i]=='*': ls.append('星') elif s[i].isdigit()== False: ls.append(s[i]) elif s[i].isdigit()== True: #将数字两边添加‘*’ ls.append('*') ls.append(s[i]) ls.append('*') a = ''.join(ls).replace('**', '')#如果是连续数字,中间会出现“**”,此时用replace除去 print(a.replace('星', '*')) #为防止原字符串有**被删除,先用‘星’代替,删除新增的**后再替换