P=list(map(int,input().split())) #P[0] P[1] P[2]分别对应P1 P2 P3
S=input() #输入字符串
s=list(S) #转化为列表
for i in range(1,len(s)-1): #字符串的头尾不用进入循环
if s[i]=='-': #找到’-‘进行编辑
if ord('z')>=ord(s[i+1])>ord(s[i-1])>=ord('a'): #判断是否为字母
if P[0]!=3: #填充字母
if P[2]==1: #顺序
number=ord(s[i+1])-ord(s[i-1])-1
X=""
if P[0]==1:#小写
for j in range(number):
for k in range(P[1]):
X=X+chr(ord(s[i-1])+j+1)
else:#大写
for j in range(number):
for k in range(P[1]):
X=X+chr(ord(s[i-1])+j+1-32) #小写字母的ascll码减去32为大写的
s[i]=X
else:#倒序
number = ord(s[i + 1]) - ord(s[i - 1]) - 1
X = ""
if P[0] == 1: # 小写
for j in range(number):
for k in range(P[1]):
X = X + chr(ord(s[i + 1]) - j - 1)#从比s[i+1]的ascll码小一的字符开始加入字符串X j用于逐个减直至找到s[i-1]
else: # 大写
for j in range(number):
for k in range(P[1]):
X = X + chr(ord(s[i + 1]) - j - 1 - 32)
s[i] = X
else: #填充*
number = ord(s[i + 1]) - ord(s[i - 1]) - 1
x=""
for j in range(number):
for k in range(P[1]):
x=x+"*"
s[i]=x
elif ord('9')>=ord(s[i+1])>ord(s[i-1])>=ord('0'): #判断是否为数字
if P[0]!=3: #填充数字
# print(3)
if P[2]==1: #顺序
number=ord(s[i+1])-ord(s[i-1])-1
X=""
for j in range(number):
for k in range(P[1]):
X=X+chr(ord(s[i-1])+j+1)
s[i]=X
else: #倒序
number = ord(s[i + 1]) - ord(s[i - 1]) - 1
X = ""
for j in range(number):
for k in range(P[1]):
X = X + chr(ord(s[i + 1]) - j - 1) #从比s[i+1]的ascll码小一的字符开始加入字符串X j用于逐个减直至找到s[i-1]
s[i] = X
else: #填充*
number = ord(s[i + 1]) - ord(s[i - 1]) - 1
x=""
for j in range(number):
for k in range(P[1]):
x=x+"*"
s[i]=x
elif ord(s[i+1])==(ord(s[i-1])+1): #若前后字符的ascll码差值为1 则去掉‘-’
s[i]=""
else: #若ascll码值 s[i-1]>s[i+1] 则开始下一轮循环 不做处理
continue;
for i in range(len(s)): #输出
print(s[i],end="")
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复