使用Python查找得到食品包装的人数的程序

使用Python查找得到食品包装的人数的程序

假设在一次会议中,有两种类型的人。第一种人喜欢素食午餐,而另一种人则喜欢荤食午餐。但是食品包装的数量有限,如果素食者收到荤食包装或反之亦然,则他们不会拿走该包装并等到自己喜欢的包装。因此,这两种不同类型的包装和人分别用数字0表示素食和1表示荤食。现在我们有两个数组,一个包含n个食品包装指定为0和1,另一个包含m个人排队等待,他们的喜好用0和1表示。因此,如果一个人没有得到他们喜欢的包装,他们就会重新排队并等待他们喜欢的包装。因此,我们必须查找没有食品包装的人数,以便我们可以安排他们喜欢的包装。

因此,如果输入为people =[0,1,1,0], packets = [0, 1, 0, 0],那么输出将为1。

因此,两个人喜欢荤食,而只有一个荤食包。排在首位的那个喜欢荤食的人拿到了这个包装,另一个人正在等待,因为没有其他荤食包。因此,输出为1。

为了解决这个问题,我们将按照以下步骤进行——

  • temp_arr:包含值为0和0的新列表

  • 对于people中的每个人,请执行以下操作:

    • temp_arr [person]:= temp_arr [person] +1
  • k: = 0

  • while k < packets大小时,请执行以下操作:

    • 如果temp_arr [packets [k]]> 0,那么
      • temp_arr [packets [k]]:= temp_arr [packets [k]]-1
    • 否则,
      • 退出循环
    • k: = k +1

  • 返回size of packets – k

例子

让我们看一下以下实现,以便更好地理解–––

def solve (people,packets):
     temp_arr = [0,0]
    for person in people:
        temp_arr [person] + = 1
    k = 0
    while k  0:
            temp_arr [packets [k]]-= 1
        else:
            break
        k + = 1
    返回len(packets)- k

print(solve([0,1,1,0],[0,1,0,0]))

输入

[0,1,1,0],[0,1,0,0]

输出

1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程