题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
#include <iostream> #include <map> #include <vector> using namespace std; typedef pair<int,int> T; //第一个参数是候选人输入顺序,第二个参数是票数 int main() { int n,m,Inval = 0; cin >> n; string c; vector<string> vec; map<string, T>hashMap; T tt; int i = 0; while (n--){ cin >> c; auto it = hashMap.find(c); if (it == hashMap.end()){ tt.first = i++; tt.second = 0; hashMap[c] = tt; vec.push_back(c); } } cin >> m; while (m--){ cin >> c; auto it = hashMap.find(c); if (it != hashMap.end()){ it->second.second++; // cout << it->first << " "<< it->second.first <<" "<< it->second.second <<endl; } else { Inval++; } } int cnt = 0; while (cnt < vec.size()){ auto it = hashMap.find(vec[cnt++]); if (it != hashMap.end()){ cout << it->first << " : " << it->second.second << endl; } } cout << "Invalid" << " : " << Inval <<endl; return 0; }