PAT 乙级 1111
15分里面最难的第二集。代码里面用了好多种方法。
#include<bits/stdc++.h> using namespace std; int main() { int n; string month, day, year; string final, temp; map<string, string> A = {{"Jan","01"}, {"Feb","02"}, {"Mar","03"}, {"Apr","04"}, {"May","05"}, {"Jun","06"}, {"Jul","07"}, {"Aug","08"}, {"Sep","09"}, {"Oct","10"}, {"Nov","11"}, {"Dec", "12"}}; for(cin >> n; n; n --) { cin >> month >> day >> year; month = A[month]; day.erase(day.end() - 1); //删除最后一个字符 if(day.size() == 1) day = '0' + day; while(year.size() < 4) year = '0' + year; final = year + month + day; temp = "Y"; for(int i = 0; i < 4; i ++) if(final[i] != final[8 - 1 - i]) { temp = "N"; break; } cout << temp << " " << final << endl; } return 0; }