题目描述:
牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
输入示例:
BUTTER FLOUR HONEY FLOUR EGG
输出示例
4
c++代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> str;//初始化一个存储字符串的向量,用于存储所有配料名称
string strr;//定义一个string变量
cin>>strr;//首先获取输入行的第一个配料名称
cin.get();//把输入流中的下一个空格/换行字符读取
str.push_back(strr);将获取的第一个配料名称存入向量中
int k = 1;定义一个变量用于记录配料的种类数,因为已经向向量中放入了一种配料名称,所以k初始化为1
//通过循环来不断的向向量中存入新的物料名称,循环的依据就是每一次从输入流中得到一种配料名称之后
//然后通过循环判断目前的向量中是否有这种配料名称,如果有的话,直接跳出循环,如果没有,就把这种原料添加进来
while(cin>>strr){
for(int i=0;i<str.size();i++){
if(str[i]==strr){
break;
}
else if(str[i]!=strr && i==str.size()-1){
str.push_back(strr);
k +=1;
}
}
cin.get();
}
cout<<k;
return 0;
}