题目

解法1
点击查看代码
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
// a=97,z=122;A=65,N=78,Z=90
int main() {
vector<string> vs(4);
for (int i = 0; i < 4; i++) {
cin >> vs[i];
}
unordered_map<char, string> daymap = {
{'A', "MON"}, {'B', "TUE"}, {'C', "WED"},
{'D', "THU"}, {'E', "FRI"}, {'F', "SAT"}, {'G', "SUN"}
};
// Find Day
string day;
int i = 0, j = 0;
while (i < vs[0].size() && j < vs[1].size()) {
if (vs[0][i] == vs[1][j] && vs[0][i] >= 'A' && vs[0][i] <= 'G') {
day = daymap[vs[0][i]];
break;
}
i++;
j++;
}
// Find Hour
i++;
j++;
int hour = 0;
while (i < vs[0].size() && j < vs[1].size()) {
if (vs[0][i] == vs[1][j]) {
if (vs[0][i] >= '0' && vs[0][i] <= '9') {
hour = vs[0][i] - '0';
break;
} else if (vs[0][i] >= 'A' && vs[0][i] <= 'N') {
hour = vs[0][i] - 'A' + 10;
break;
}
}
i++;
j++;
}
// Find Minute
int minute = 0;
i = 0;
j = 0;
while (i < vs[2].size() && j < vs[3].size()) {
if (vs[2][i] == vs[3][j] && isalpha(vs[2][i])) {
minute = i;
break;
}
i++;
j++;
}
// Output
cout << day << " ";
if (hour < 10) {
cout << "0";
}
cout << hour << ":";
if (minute < 10) {
cout << "0";
}
cout << minute << endl;
return 0;
}
一些心得
感觉这题的难点在于读懂题目
浙公网安备 33010602011771号