jason198744 发表于 2022-9-30 12:01:25

请问各位大佬,32讲习题集得这一道

请问各位大佬,32讲习题集,动动手的第0道,最后面这个if count == 1:
    result += ch
else:
    result += ch + str(count)为什么需要呢?前面不是已经可以打印result了嘛?
全部代码如下:
s = input("请输入待压缩字符串:")

ch = s
result = ''
count = 0

for each in s:
    if each == ch:
      count += 1
    else:
      if count > 2:
            result += ch + str(count)
      if count == 2:
            result += ch + ch
      if count == 1:
            result += ch
      ch = each
      count = 1

if count == 1:
    result += ch
else:
    result += ch + str(count)

print(f"压缩后的字符串:{result}")
print(f"压缩率为:{len(result)/len(s)*100:.2f}%")

ba21 发表于 2022-9-30 12:36:23

你先假设count=1走走代码就知道问题了。
页: [1]
查看完整版本: 请问各位大佬,32讲习题集得这一道