解题思路:
注意事项:只有一个小错误,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语言考试练习题_保留字母 (C语言代码)浏览:723 |
C语言训练-字符串正反连接 (C语言代码)浏览:652 |
C语言训练-排序问题<1> (C++代码)浏览:622 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:981 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:655 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:641 |
时间转换 (C语言代码)浏览:684 |
C语言程序设计教程(第三版)课后习题10.7 (用指针求解)浏览:1530 |
C二级辅导-统计字符 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:707 |