Vasya-秘书----- Codewars Kat

时间:2018-12-22 13:16:37

标签: python-3.x

新的《复仇者联盟》电影刚刚发行!电影票房里有很多人排成一列。他们每个人都有一张100、50或25美元的钞票。一张“复仇者”票要花25美元。

Vasya目前担任文员。他想向此行中的每个人卖票。

如果Vasya最初没有钱并严格按照人们排队的顺序出售门票,可以向每个人出售门票并进行找零吗?

返回YES,如果Vasya可以卖给每个人一张票,并用当下手头的账单给找零。否则返回NO。

示例: tickets([25,25,50])#=>是 tickets([25,100])#=> NO。 Vasya将没有足够的钱来找100美元的零钱 tickets([25,25,50,50,100])#=>否。

谁能告诉我我得到TypeError的问题是什么:我单击提交时TypeError:不可排序的类型:list()> = int()错误

def tickets(people):
a=[]

if people[0] ==25:
    a.append(people[0])
    for x in people[1:]:
        if x == 25:
            a.append(people[0])
        else:
            a = sum(a) - x 

    if a >= 0:
        return 'YES'
    else:
        return "NO"


else:
    return 'NO'

谢谢

1 个答案:

答案 0 :(得分:1)

您的变量a肯定存在问题,该变量以列表开头,但是在代码的这一部分,如果有人尝试用50或100付款,您将为{赋一个整数值改为{1}}

a

在这一行

if x == 25:
    a.append(people[0])
else:
    a = sum(a) - x 

您正在将其与int值0(即代码的设置方式)进行比较,对于一个测试用例,其中一行中的每个人都有25,当您的代码到达上一行时,if a >= 0: 将仍然是一个列表,您将得到描述的错误,因为您试图将列表与整数进行比较。