首页 > 试题广场 >

下厨房

[编程题]下厨房
  • 热度指数:54343 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。


输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例1

输入

BUTTER FLOUR
HONEY FLOUR EGG

输出

4
本题用python很快就搞定了
代码如下:
l = []
while True:
    try:
        l=l+(input().split())
    except:
        break
l_set = set(l)
print(len(l_set))


发表于 2021-04-17 21:56:34 回复(0)
利用python中集合不可重复的特性,来去重。
ingradient = set()
while True:
    try:
        char = list(input().split(' '))
        for i in char:
            ingradient.add(i)
    except:
        break
print(len(ingradient))


发表于 2021-01-03 23:40:19 回复(0)
k = []
for i in range(50):
    while True:
        try:
            s = input()
            k.append(s)
            ingre = []
            for u in k:
                q = u.split(' ')
                for p in q:
                    if p not in ingre:
                        ingre.append(p)
        except:
            break
print(len(ingre))

发表于 2020-04-21 01:05:28 回复(0)
这个问题的解答碰到一个问题,如何判断输入结束。采用python的try 和 except进行判断可以很好的解决这个问题。
a=[]
d = {}
while 1:
    try:
        for k in input().split():
            a.append(k)
    except:
        break
for i in range(len(a)):   
    if a[i] in d.keys():
        d[a[i]] = d[a[i]] + 1
    else:
        d[a[i]] = 1
print (len(d.keys()))   


发表于 2018-09-18 11:33:28 回复(0)
import sys

need = []

for line in sys.stdin:
    needline = line.split()
    for item in needline:
        need.append(item)

setneed = set(need)

print(len(setneed))
发表于 2018-08-08 22:10:07 回复(0)
import sys

words=[]
for line in sys.stdin.readlines():
    word=line.split()
    words.extend(word)
    
print(len(set(words)))

发表于 2018-07-25 00:38:07 回复(0)
'''看到这个题,思路还是很简单的,用集合收集全部的字符串即可。
但是,怎么读取数据?问题之所在。用sys.stdin
看了下其他朋友的答案。发现了另外一种思路。先用列表。在转集合。

答案一,直接集合:
import sys
result = set()

for line in sys.stdin:
    for string in line.split():
        result.add(string)

print len(result)

答案二,先用列表,再用集合:
import sys
res = []
for line in sys.stdin:
    res.extend(line.split())

result = set(res)
print len(result)




发表于 2018-07-22 00:26:30 回复(0)
PY3中的input()判断末行除了try...except,还有好的办法吗(如果能用判断语句就再好不过了)

发表于 2018-06-04 12:27:42 回复(0)
import sys
sourceslist=[]
#就知道sys.stdin这个函数就好,这个知道就会了。
for line in sys.stdin:
    sourceslist.extend(line.split())
print(len(list(set(sourceslist))))
编辑于 2018-05-26 22:52:59 回复(0)
发表于 2018-05-25 11:08:41 回复(0)
import sys

a=[]
for line in sys.stdin:
    s = line.split()
    a.extend(s) #将所有的材料加入空列表中
b=set(a)#用set去重
print(len(b))

发表于 2018-04-16 12:01:41 回复(0)
import sys
material=[]
sentinel="" while True:
    a=sys.stdin.readline().strip()    if not a:  break    material+=str(a).split() print(len(set(material)))

python要点
1.
sys.stdin.readline().strip()  
2.while循环
用for会出错

发表于 2018-04-15 01:32:30 回复(0)

问题信息

难度:
24条回答 31993浏览

热门推荐

通过挑战的用户

查看代码