解题思路:
注意事项:只有一个小错误,91分
参考代码:
l = list(input().strip().split())
if len(l) == 4:
p1 = int(l[0])
p2 = int(l[1])
p3 = int(l[2])
s = l[3]
else:
p1 = int(l[0])
p2 = int(l[1])
p3 = int(l[2])
s = input().strip()
t = s[0]
n = len(s)
if n <= 1:
print(s)
quit()
def ismean(a, b):
if ord('A') <= ord(a) < ord(b) <= ord('Z'):
return -1
elif ord('a') <= ord(a) < ord(b) <= ord('z'):
return 1
elif ord('0') <= ord(a) < ord(b) <= ord('9'):
return 0
return -2
for i in range(1, n - 1):
if s[i] == '-' and ismean(s[i - 1], s[i + 1]) == 0:
if p3 == 1:
if p1 == 1 or p1 == 2:
c = s[i - 1]
c = chr(ord(c) + 1)
while c != s[i + 1]:
for k in range(p2):
t += c
c = chr(ord(c) + 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
elif p3 == 2:
if p1 == 1 or p1 == 2:
c = s[i + 1]
c = chr(ord(c) - 1)
while c != s[i - 1]:
for k in range(p2):
t += c
c = chr(ord(c) - 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
elif s[i] == '-' and ismean(s[i - 1], s[i + 1]) == 1:
if p3 == 1:
if p1 == 1:
c = s[i - 1]
c = chr(ord(c) + 1)
while c != s[i + 1]:
for k in range(p2):
t += c
c = chr(ord(c) + 1)
elif p1 == 2:
c = s[i - 1]
c = chr(ord(c) + 1 - 32)
while c.lower() != s[i + 1]:
for k in range(p2):
t += c
c = chr(ord(c) + 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
elif p3 == 2:
if p1 == 1:
c = s[i + 1]
c = chr(ord(c) - 1 )
while c != s[i - 1]:
for k in range(p2):
t += c
c = chr(ord(c) - 1)
elif p1 == 2:
c = s[i + 1]
c = chr(ord(c) - 1 - 32)
while c.lower() != s[i - 1]:
for k in range(p2):
t += c
c = chr(ord(c) - 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
elif s[i] == '-' and ismean(s[i - 1], s[i + 1]) == -1:
if p3 == 1:
if p1 == 1:
c = s[i - 1]
c = chr(ord(c) + 1 + 32)
while c.upper() != s[i + 1]:
for k in range(p2):
t += c
c = chr(ord(c) + 1)
elif p1 == 2:
c = s[i - 1]
c = chr(ord(c) + 1)
while c != s[i + 1]:
for k in range(p2):
t += c
c = chr(ord(c) + 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
elif p3 == 2:
if p1 == 1:
c = s[i + 1]
c = chr(ord(c) - 1 + 32)
while c.upper() != s[i - 1]:
for k in range(p2):
t += c
c = chr(ord(c) - 1)
elif p1 == 2:
c = s[i + 1]
c = chr(ord(c) - 1)
while c != s[i - 1]:
for k in range(p2):
t += c
c = chr(ord(c) - 1)
else:
for i in range(ord(s[i - 1]), ord(s[i + 1])-1):
for k in range(p2):
t += '*'
else:
t += s[i]
print(t + s[-1])
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复