|
发表于 2022-11-2 11:11:25
|
显示全部楼层
本楼为最佳答案
- '''
- 解压规则:
- 如果一个数字后面跟一个字符,这里假设这个数字 n, 这个字符为 c
- 那么c就出现了n次
- 比如:
- 按照该解压规则解压字符串:
- -6
- 最终的结果会是:
- ------
- 可以重复出现多次该结构:
- -8/4[3
- 结果会是:
- --------////[[[
- 但是如果只出现了一个数字 n,那么只会出现 n - 1 次的 n 的第一位数,比如:
- 5
- 结果会是:
- 5555
- 再比如:
- 6-3
- 结果会是
- 66666---
- 或者:
- 13-1
- 结果会是:
- 111111111111-
- 只出现了一个字符c那么就只会出现一个字符c:
- -
- 结果会是:
- -
- 再比如:
- +=4
- 结果会是:
- +====
- '''
- s = input() #正常读入字符串
- s += ' ' #加上一个空格,可以使遍历最后一个时,也能执行,解压操作
- ch = s[0] #循环需要添加的字符
- result = '' #最终解压后结果
- repeat = '' #循环添加次数
- for each in s: #遍历待解压的字符串
- if each.isdecimal(): #如果当前是一个数字
- repeat += each #加到次数中
- continue #遍历下一个字符,可以不用写
- else: #如果不是一个数字
- if repeat != '': #如果次数非空
- for i in range(int(repeat)-1): #循环 repeat - 1 次
- result += ch #最终结果末尾添加ch
-
- result += each #最终结果加一下该字符
- repeat = '' #循环次数清空
- ch = each #ch设置为当前的字符,是下一次出现数字时要循环的字符
- result.rstrip() # 去掉末尾的空格
- print(f"解压后的字符串:{result}") #照常输出解压结果
复制代码
自己造出来了解压规则,求给最佳 |
|