bittybite 2022-09-15 22:47 采纳率: 60%
浏览 23
已结题

浙江pathon高考

不太明白这个算法,怎么做到倒退增加新stack的。レ(゚∀゚;)ヘ=З=З=₍˄·͈༝·͈˄*₎◞ ̑̑(´I`)(˵¯͒〰¯͒˵)(˃ ⌑ ˂ഃ )

img

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-09-16 01:10
    关注

    关键在于while循环里的 if 语句的stack.pop()实现了回退。使用单步调试就可以理解了。
    有几个空填写不太正确,建议做以下修改再试试:

        while stack or i<n:
            while t>0 and i<n:
                if t>=int(pricelist[i]):
                    stack.append(i)
                    t-=int(pricelist[i])
                i+=1
                if t==0:
                    print("取序号为",stack,"的物品")
                    num+=1
            if i==n:
                i=stack.pop()
                t+=int(pricelist[i])
            i+=1
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月12日
  • 创建了问题 9月15日