如何使它在循环中仅遍历一次同样的字符
a=input("请输入待压缩字符串")q=[]
for i in a:
if a.count(i)>=3:
q.append(a)
q.append(a.count(i))
else:q.append(i)
print("压缩后的字符串",q)
print("压缩率为:","{:.2f}".format(len(q)/len(a))) >>> 'a' in ['a']
True
>>> 'a' in ['b','c']
False 你这思路不对呀,
count 不是数连在一起的两个字符, 你这样即使 abcadefa, 也会被压缩为 a3
a = input("请输入待压缩字符串:")
q = []
for i in a:
if a.count(i) >= 3:
if i not in for j in q]:
q.append(i+str(a.count(i)))
else:
q.append(i)
q = ''.join(q)
print("压缩后的字符串", q)
print("压缩率为:", "{:.2f}%".format(len(q) / len(a) * 100)) 还有压缩考虑,abc压缩完之后是a1b1c1,比原来的都还长的就没压缩的必要了
而且只有连续的才考虑压缩bbbcb压缩完是b3c1b1,不然b4c1怎么还原
页:
[1]