给定一个字符串,如果压缩后长度减小,则输出压缩后的结果,例如“qqqaaa”,压缩为’q3a3’,长度变小,则输出’q3a3’
代码如下:
def ya_suo(k_str):
c = [i for i in k_str]
d = []
# 字符个数
n = 1
# 比较值
q = 1
# 循环次数
xh = len(a)-1
# 首次循环索引
sx = 0
cs = xh
while xh >= 0:
if c[sx] == c[sx+1]:
xh -= 1
n += 1
sx += 1
#如果索引加一大于最大索引,直接保存退出
if sx+1 > cs:
d.append((c[sx], n))
break
else:
xh -= 1
d.append((c[sx], n))
n = 1
sx += 1
# 如果索引加一大于最大索引,直接保存退出
if sx+1 > cs:
d.append((c[sx], n))
break
return d
a = 'aabbaaahhhhj'
ret = ya_suo(a)
l_list = []
for i in ret:
l_list.append(i[0])
l_list.append(str(i[1]))
if len(l_list) < len(a):
l_str = ''.join(l_list)
print(l_str)
else:
print(a)