题意:
输入 m和n 然后输入m个字典序列,每个序列包括一个字符窜 和一个数字,之后输入n个文章,以'.'作为结束,查询文章中是否有字典里的字符串有的话加上他的数字。
解题思路:
使用map 看了别人写的map确实好用,解决了好多麻烦。map<a,b> m,相当于简历一个b类型的数组以a类型为下标。剩下的就是查询就行了。
具体代码:
#include<iostream> #include<map> #include<string> #include<cstring> #include<stdlib.h> using namespace std; map <string, int> mm; int main() { int t,n; cin>>t>>n; string s; for(int i=0;i<t;i++) { cin>>s; cin>>mm[s]; } getchar(); long long sum; while(n--) { sum=0; while(cin>>s,s!=".") { if(mm.find(s) != mm.end()) sum+=mm[s]; } cout<<sum<<endl; } system("pause"); return 0; }