一个碗中装有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))
请问怎么修改