题目描述 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备
多少种不同的材料。 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪
些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50
行,每一行不超过 50 个字符。 输出描述: 输出一行一个数字表示完成所有料理需要多少种不同的材料。
采用容器set C++
#include <iostream> #include <set> #include <string> using namespace std; int main() { string s; set<string> str; while (cin>>s) { str.insert(s); } cout << str.size() << endl; }
采用容器map C++
#include <iostream> #include <map> #include <string> using namespace std; int main() { string s; map<string,int> str; while (cin>>s) { str[s]=1; } cout << str.size() << endl; }
采用多维字符数组,比较字符串 C++
#include <iostream> #include <string.h> using namespace std; int main() { //定义多维数组存储所有的字符串 char s[1000][100] = { 0 }; //定义临时变量存储输入的字符串 char str[100]; int j = 0; int count = 0; while (cin >> str) { if (j == 0) { strcpy(s[j], str); j++;count++; } bool flag = false; for (int i = 0;i < j;i++) { if (strcmp(s[i], str) == 0) { flag = true; break; } } if (!flag) { strcpy(s[j], str); j++;count++; } } cout << count << endl; }
python
import sys std_in = sys.stdin tmp = set() for line in std_in: for food in line.split(): tmp.add(food) print(len(tmp))