感觉,第一个相同的大写字母,第二个相同的字符,还是有歧义的,哎~
#include <iostream>
#include <cstdio>
#include <unordered_map>
using namespace std;
unordered_map<char, string> weekday = {
{'A', "MON"},
{'B', "TUE"},
{'C', "WED"},
{'D', "THU"},
{'E', "FRI"},
{'F', "SAT"},
{'G', "SUN"}
};
bool isletter(char c){
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');
}
int main(){
string a,b,c,d;
cin >> a >> b >> c >> d;
string day;
int hh, mm;
bool first = true;
for(size_t i = 0; i < a.size() && i < b.size(); ++i){
if(a[i] == b[i]){
if(!first){
if(a[i] >= '0' && a[i] <= '9'){
hh = a[i] - '0';
break;
}else if(a[i] >= 'A' && a[i] <= 'N'){
hh = a[i] - 'A' + 10;
break;
}
}
if(a[i] >= 'A' && a[i] <= 'G'){
if(first){
first = false;
day = weekday[a[i]];
}
}
}
}
for(size_t i = 0; i < c.size() && i < d.size(); ++i){
if(c[i] == d[i] && isletter(c[i])){
mm = i;
break;
}
}
printf("%s %02d:%02d", day.c_str(), hh, mm);
return 0;
}