新的《复仇者联盟》电影刚刚发行!电影票房里有很多人排成一列。他们每个人都有一张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'
谢谢
答案 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:
将仍然是一个列表,您将得到描述的错误,因为您试图将列表与整数进行比较。