P8722题解
通过题目描述不难发现月份都是三位,给出的字符串都是五位,可以考虑使用 substr
截取。
对于截取出的字符串的处理方面,数字部分可以使用库函数 stoi
,可以将一个全数字的字符串转换成数字且自动去除前导 $0$,对于字符可以使用哈希,询问时直接查表即可。
#include<bits/stdc++.h>
using namespace std;
unordered_map<string,int> mp{//创立哈希表,建立字符到整形的映射
{"Jan",1},
{"Feb",2},
{"Mar",3},
{"Apr",4},
{"May",5},
{"Jun",6},
{"Jul",7},
{"Aug",8},
{"Sep",9},
{"Oct",10},
{"Nov",11},
{"Dec",12}
};
int main(){
string a;
cin>>a;
string s=a.substr(0,3),x=a.substr(3,2);
cout<<mp[s]<<" "<<stoi(x); //使用stoi函数
return 0;
}