在 Python 中检查所有列出的交付操作是否有效的程序
假设我们有一个名为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
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短