牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
输入例子:
BUTTER FLOUR HONEY FLOUR EGG
输出例子:
4
Python
# -*- coding:utf-8 -*-
import sys
a=[]
#sys.stdin 读取数据
for line in sys.stdin:
#strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
if line.strip() == ' ':
break
#extend往列表中添加元素
a.extend(line.split())
#set 定义集合 集合中消除重复元素
print len(set(a))
c++
#include<bits/stdc++.h>
using namespace std;
char str[55];
//定义一个键值对容器food 键string类型 值int类型
map<string,int> food;
int main(){
while(cin>>str){
//值+1 键值对+1
food[str]++;
}
//map中size 返回键值对个数
cout<<food.size()<<endl;
return 0;
}
java
import java.util.Scanner;
import java.util.HashSet;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
HashSet<String> set = new HashSet<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
while(str!=null){
String[] arr = str.trim().split(" ");
for(String s: arr){
set.add(s);
}
str = br.readLine();
}
System.out.println(set.size());
}
}