網易2016校招內推筆試程式設計題
阿新 • • 發佈:2018-12-23
牛牛想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。
輸入描述:
每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文字母和空格,輸入檔案不超過 50 行,每一行不超過 50 個字元。
輸出描述:
輸出一行一個數字表示完成所有料理需要多少種不同的材料。
示例1
輸入
BUTTER FLOUR HONEY FLOUR EGG
輸出
4
好久沒更了,廢話少說,非常簡單的題目,只不過要用到一些STL的內容,知識有些遺忘
程式碼:
set版
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <map> #include <cmath> #include <set> #include <vector> using namespace std; set<string>st; int main() { string s; int ans; while(cin>>s) { st.insert(s); } ans=st.size(); cout<<ans<<endl; return 0; }
map版
#include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <cstring> #include <string> #include <set> #include <map> using namespace std; int main() { string s; map<string,int>mp; int ans; mp.clear(); ans=0; while(cin>>s) { if(mp.count(s)==0) { mp[s]=++ans; } } cout<<ans<<endl; return 0; }
vector版
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <string> #include <vector> using namespace std; int main() { vector<string>v; char s[100]; while(cin>>s) { v.push_back(s); } sort(v.begin(),v.end()); vector<string>::iterator i = v.begin(); for(i;i<v.end()-1;i++) { if(*i==*(i+1)) { v.erase(i+1); i--; } } cout<<v.size()<<endl; return 0; }