首页 文章资讯内容详情

在 Python 中检查所有列出的交付操作是否有效的程序

2026-06-03 1 花语

假设我们有一个名为orders的字符串列表。订单列表中的每个元素都以“P”或“D”开头。“P”表示自取,“D”表示“送货”。这些字母后跟订单ID号。例如,“P6”表示取货订单6。我们必须根据这些规则检查订单列表是否有效-

我们无法在取货前交付订单

每次取件都必须交付

已提货并已送达的订单无法再次提货或送达

因此,如果输入类似于orders=["P1","D1","P2","P3","D3","D2"],那么输出将为True,因为第一个订单是在取货后交付,对于第二个和第三个订单,它们会立即取货并最终交付。

示例

让我们看看以下实现以获得更好的理解-

def solve(orders): a = {} if len(set(orders)) != len(orders): return False for i in orders: if i[0] == "P": a[i[1:]] = 1 elif i[0] == "D": if i[1:] not in a: return False else: a[i[1:]] -= 1 return sum(a.values()) == 0 orders = ["P1", "D1", "P2", "P3", "D3", "D2"] print(solve(orders))

输入

["P1", "D1", "P2", "P3", "D3", "D2"]输出结果True