32讲 字符串VI 动动手1 :解压字符串 我是这样写的
uncompress = input("请输入待解缩字符串:")s = uncompress + " "
ch = s
result = ""
num = ""
for each in s:
if each.isdecimal():
num += each
else:
if num == "":
ch = each
if num != "":
result += ch * (int(num)-1)#我暴力的直接 乘以数字加进去,不遍历了
if not each.isdecimal(): #遍历到数字后面的字母 应该加到 有数字相乘结果之后
result += each
num = ""
print(f"解压后的字符串:{result}")
#我作业每次和甲鱼老师的都不一样,我都自闭了!帮看看! 我感觉我太钻牛角尖了 你的代码基本正确,但有一处小问题需要修正。在遍历字符串时,在`if num != "":`这个条件判断语句中,你将`ch`乘以`(int(num)-1)`后,应该要重新赋值给`result`,否则会丢失之前解压出来的字符串。
下面是修正后的代码:
uncompress = input("请输入待解缩字符串:")
s = uncompress + " "
ch = s
result = ""
num = ""
for each in s:
if each.isdecimal():
num += each
else:
if num == "":
ch = each
if num != "":
result += ch * (int(num)-1)
ch = each# 修正这一行,重新赋值给ch
if not each.isdecimal():
result += each
num = ""
print(f"解压后的字符串:{result}")
现在你可以再运行一次,应该就能得到正确的解压结果了。别太纠结实现的细节,关键是能正确解压出字符串就好,加油!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 可以啊,代码实现方式有很多,不一定要和小甲鱼写的一样,你直接相乘不用循环也ok的啊
页:
[1]