Python 又是万圣节之夜!迈克尔虽然年纪大了,但仍然爱着万圣节。这一次,他去丹家玩不给糖就捣蛋的游戏。

一个碗中装有n个糖果,第 i 个糖果棒有 k[i] 个成分。
迈克尔对 m 种成分 c[0], c[1], ..., c[m-1] 过敏。如果一块糖果中含有这些 m 成分中的任何一种,迈克尔就不能吃它。
给定对糖果棒和迈克尔过敏成分的描述,输出他将服用的糖果棒的数量。

我的思路:

  • 输入由 n+2 行组成。
  • 输入的第一行包含一个整数 n。
  • 接下来的 n 行包含糖果棒的成分。每一行都将单个糖果棒描述为组成糖果棒的以空格分隔的成分列表。
  • 最后,最后一行包含迈克尔过敏的成分的空格分隔列表(即来自长度为 m 的列表 c 的信息)。

要求输出 print一个整数,迈克尔吃的糖果条数。

Hint:

  • 1 <= n, m, k[i] <= 100
  • 每个成分都是一个非空的小写英文字母串,长度最多为 7。
  • 没有糖果棒的相同成分列出两次。
  • 没有成分在迈克尔过敏的成分列表中出现两次。

Time Limit:

程序必须在任何有效输入的 4 秒内完成运行。

TEST

Sample Input 1

3
sugar cocoa salt
salt celery poison bleach
almonds
celery carrots

Sample Output 1

2

示例 1 说明

  • 有三个糖果棒。它们分别有 3、4 和 1 种成分。
  • 迈克尔对芹菜和胡萝卜过敏。这意味着他不会接受
    第二个糖果棒,因为它含有芹菜。
  • 其他 2 块糖果对他来说很好,所以他会拿走。

Sample Input 2

5
a b c
b d f
g d e f
c
a b c
b c

Sample Output 2

1

我的代码

n=int(input())
candies=[]
for i in range(0,n):
l1=list(map(str,input().split(" ")))

allergic=list(map(str,input().split(" ")))
new_candies=[]
for i in candies:
flag=0 #variable to mark a candy having allergic ingredients
for j in allergic:
if(i.count(j)>=1):
flag=1
if(flag==1):
new_candies.append(i)
print(len(candies)-len(new_candies))

请问怎么修改


 
n=int(input())
l=[]
x=0
for i in range(0,n):
    l1=list(map(str,input().split(" ")))
 
    l.append(l1)
allergic=list(map(str,input().split(" ")))
for i in l:
    flag=0
    for j in i:
        for k in allergic:
            if j==k:
                flag=1
                break
    if flag==0:
        x+=1
print(x)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632