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;
}
posted @ 2023-10-04 13:15  very_easy  阅读(16)  评论(0)    收藏  举报  来源