(切割字符串)成绩查询系统
数学老师小y 想写一个成绩查询系统,包含如下指令:
insert [name] [score],向系统中插入一条信息,表示名字为name的学生的数学成绩为score。
find [name],表示查找名字为name的学生的数学成绩。
注意有些同学可能会为了刷分多次选课,查询的时候给出最大成绩即可。
学生的名字是由小写字母组成。成绩是一个 0…100 的整数。
样例输入:
insert zhangsan 90
insert lisi 78
insert xiaoming 86
find xiaoming
find jack
end
样例输出:
86
-1
#include <iostream> #include <stdlib.h> #include <math.h> #include <string.h> #include <algorithm> #include <map> #include <sstream> using namespace std; int n,m; int ans=0; bool vis[105]; int dp[105],aa[105]; map<string,int> mp; int main() { string op,name,sc; while(getline(cin,op)){ stringstream ss(op); if(ss>>op){ if(op=="end"){ return 0; } else if(op=="insert"){ ss>>op; //字符后移 name=op; ss>>op; sc=op; int sum=0; for(int i=0;i<sc.length();i++){ sum=sum*10+(sc[i]-'0'); } if(mp[name]<sum){ mp[name]=sum; } } else{ ss>>op; name=op; if(mp.count(name)) cout<<mp[name]<<endl; else cout<<-1<<endl; } } } return 0; }