银河出逃时 2021-08-06 23:49 采纳率: 88.2%
浏览 55
已结题

一道Python题请看1下哪有问题

电影院售票处有很多人排着长队。他们每个人都有一个单一的100,50还是25美元的钞票。
一张电影票25 dollars。
Vasya想把票卖给这条线的每一个人。
如果 Vasya 最初没有钱并严格按照人们排队的顺序出售门票,他能否向每个人出售一张票并找零?
如果瓦夏能把一张票卖给每个人,返回YES,并用他当时手头的钞票找零。否则返回NO。

自己写的代码有些实例带进去对,这两个带进去不对,估计逻辑还是有一些问题请帮我在此基础上改一下

def tickets(people):
    c = []
    ch = 0
    for i in people:
        if i == 25:
            c.append(i)
            ch = sum(c)
        if i>25:
            ch -= (i-25)
            if ch >= 0:
                c.append(25)
    if ch >= 0:
        return "YES"
    else:
        return "NO"

print(tickets([25, 25, 50, 100]))#"YES"
print(tickets([25, 50, 25, 50, 100, 25, 25, 50]))#"NO"

  • 写回答

2条回答 默认 最新

  • 八云黧 2021-08-07 10:29
    关注

    思路有问题,不能直接用手里钱的总和来计算。
    比如你手里只剩两张50,ch为100,再来个50,你总和上算能找开,但你根本没零钱。
    改了一下代码

    def tickets(people):
        dict = {25:0,50:0,100:0}
        for i in people:
            if i == 25:
                dict[25] += 1
            elif i == 50:
                if (dict[25] == 0):
                    return "NO"
                else:
                    dict[25]-=1
                    dict[50]+=1
            else:
                # 一个很简单的逻辑,当你手里有50元时,只能用来给100找零,所以应该优先50+25
                if (dict[25]>0 and dict[50]>0):
                    dict[25]-=1
                    dict[50]-=1
                    # 其实100可以不要,因为100无法被用于找零,这里主要是为了能够显示手里最终有什么样的组合才使用的
                    dict[100]+=1
                elif (dict[25]>=3):
                    dict[25]-=3
                    dict[100]+=1
                else:
                    return "NO"
        return "YES"
    print(tickets([25, 25, 50, 100]))#"YES"
    print(tickets([25, 50, 25, 50, 100, 25, 25, 50]))#"NO"
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动