【发布时间】:2022-01-16 17:48:53
【问题描述】:
编写一个函数processOrders(orders:List[int], sizes:List[int]) 来确定每个给定的订单是否可以被执行。这里,orders 是一个正整数列表,其中每个整数代表该订单所要求的长度。 size 是一个正整数列表(不一定从小到大排序),表示该商店携带的各个杆长度。您的函数必须返回一个布尔值列表,其中第 i 个元素指示是否可以满足第 i 个订单。
processOrders([5, 12, 13, 20], [1, 2, 5, 10]) == [True, True, True, True]
在上面的例子中,商店销售长度为:1、2、5、10 的杆。由于商店销售 5 厘米的杆,因此可以履行 5 厘米的订单。此外,由于商店结合了 2 厘米和 10 厘米杆,因此可以完成 12 厘米的订单。 13cm的顺序可以满足,因为它是10+2+1。 20cm的订单可以完成,因为店家焊接了两根10cm的棒材。
我尝试过这样做,但它不起作用..
def findsum(s,g):
for f in g:
for x in s:
if sum (x) == f:
return True
else:
return False
我需要做哪些改变?
编辑:任何组合都应该有效:)
【问题讨论】:
-
有没有限制,可以执行多少个挥舞操作,因为否则,每个订单,它是整数而不是浮点数,都可以通过根据需要一起挥舞尽可能多的1cm棒来完成
-
为什么示例测试用例中的所有值都不是 True?
-
@FirestarXYZ 哎呀,对不起。他们都是真的:)如果你可以请提供解释:)
-
就像 Yggraz 所说的,我们是否正在尝试验证任何组合是否有效?因为这意味着我们可以像一堆 1 厘米长的棒一样焊接在一起
-
@Yg 是的,如果列表中有 1,那也可以,但是我很确定我将获得的数据不会那么简单
标签: python list function boolean equation-solving