题目
思路:
生成两个函数:压缩与解压
在压缩中利用flag保留前一个字符串
再利用count统计重复出现字母的个数
如果目前遍历到的字母和flag相同,则count+1
反之,说明重复结束
在解压中,如果遇到数字,表示需要解压
代码:
def compress(string):
result=''
flag=string[0]
count=1
for i in string[1:]:
if i==flag:
count=count+1
else:
if count!=1:
result=result+str(count)+flag
else:
result = result + flag
count=1
flag=i
if count != 1:
result = result + str(count) + flag
else:
result = result + flag
return result
def discompress(string):
result = ''
flag = False #是否需要解压
count=''
for i in range(len(string)):
if '0'<=string[i]<='9':
count=count+string[i]
flag=True
else:
if flag:
for j in range(int(count)):
result=result+string[i]
else:
result = result + string[i]
flag=False
count=''
return result
C_or_D=input()
string=input()
if C_or_D=='C':
print_ = compress(string)
else:
print_ = discompress(string)
print(print_)