代码展示:
# 1078 字符串压缩与解压 (20 分)
def codeStrint(info):
# 'TTTTThhiiiis isssss a tesssst CAaaa as' => '5T2h4is i5s a3 te4st CA3a as'
cnt = ''
char = ''
for c in info:
if c != char:
if cnt == 1:
print(char,sep='',end='')
else:
print(cnt,char,sep='',end='')
cnt = 1
char = c
else:
cnt += 1
if cnt == 1:
print(char,sep='',end='')
else:
print(print(cnt,char,sep='',end=''))
print()
def decodeString(info):
# '5T2h4is i5s a3 te4st CA3a as10Z' -> 'TTTTThhiiiis isssss a tesssst CAaaa asZZZZZZZZZZ'
while info != '':
num, info = splitNumAlpha(info)
if num==0:
print(info[0],end='',sep='')
info = info[1:]
else:
print(num*info[0],end='',sep='')
info = info[1:]
def splitNumAlpha(info):
num = ''
rest = info
for c in info:
if c.isdigit():
num += c
rest = rest[1:]
else:
break
num = 0 if num==''else int(num)
return num, rest
if __name__ == '__main__':
mode = input()
info = input()
# mode = 'C'
# info = 'TTTTThhiiiis isssss a tesssst CAaaa as'
# mode = 'D'
# info = '5T2h4is i5s a3 te4st CA3a as10Z'
if mode == 'C':
codeStrint(info)
elif mode == 'D':
decodeString(info)
测评结果: