题目链接
这道题真的是十分的坑
首先说坑点
测试点1,2,4卡的是小时数也需要是2位的,比如FRI 4:04就是不对的,应该是FRI 04:14
用map保存每个字母对应的星期,和每个字母对应的小时数
对于星期要求:范围A到G
对于小时要求:范围A到N或者0到9,但是必须是2位
对于分钟要求:必须是字母,按照出现的位置给分钟,必须是2位,这里用isalpha()判断是不是字母
#include<iostream>
#include<string>
#include<map>
#include<cstdio>
using namespace std;
int flag=0;
int main()
{
char c='A';
map<char,string>k;
map<char,int>time;
k['A']="MON";k['B']="TUE";k['C']="WED"; k['D']="THU";k['E']="FRI";k['F']="SAT";k['G']="SUN";
for(int i=10;i<=23;i++){
time[c++]=i;
}
c='0';
for(int i=0;i<10;i++){
time[c++]=i;
}
string a1,a2,b1,b2;
cin>>a1>>a2>>b1>>b2;
for(int i=0;i<a1.size();i++){
if(a1[i]==a2[i]){
if(a1[i]>='A'&&a1[i]<='G'&&flag==0){
cout<<k[a1[i]]<<" ";
flag=1;
continue;
}
if(flag==1&&(a1[i]>='0'&&a1[i]<='9')||(a1[i]>='A'&&a1[i]<='N')){
printf("%02d:",time[a1[i]]);
break;
}
}
}
for(int i=0;i<b1.size();i++){
if(b1[i]==b2[i]&&isalpha(b1[i])){
printf("%02d",i);
break;
}
}
return 0;
}