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语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:931 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:663 |
字符串输入输出函数 (Java代码)浏览:1438 |
WU-printf基础练习2 (C++代码)浏览:2002 |
【金明的预算方案】 (C++代码)浏览:938 |
Cylinder (C语言描述+详细分析)浏览:3264 |
图形输出 (C语言代码)浏览:1384 |
演讲大赛评分 (C语言代码)浏览:1629 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:662 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:713 |