思路: 用map存储星期,用flag来判断是否第一个星期已经判断完毕,并且在判断完成第二个 时 ,要记得break
AC代码
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
string s1,s2,s3,s4,s5;
map<int,string>ti;
int main()
{
cin>>s1>>s2>>s3>>s4;
ti[1]="MON",ti[2]="TUE";
ti[3]="WED",ti[4]="THU";
ti[5]="FRI",ti[6]="SAT";
ti[7]="SUN";//利用map来存储星期
int flag=0;
for(int i=0;i<s1.length();i++)
{
if(!flag&&s1[i]==s2[i]&&s1[i]>='A'&&s1[i]<='G')//第一个相同的字母必须要在‘A’和‘G’之间的表示周一到周日
{
cout<<ti[s1[i]-'A'+1]<<" ";//不要忘记加1
flag=1;//flag等于1 ,星期判断结束
}
else if(flag&&s1[i]==s2[i])//开始判断时间
{
if(s1[i]>='A'&&s1[i]<='N')//时间要在A和N之间,不用补0
{
cout<<s1[i]-'A'+10<<":"; //输出
break;//要记得break
}
//else if(s1[i]>=0&&s1[i]<=9)
else if(s1[i]>='0'&&s1[i]<='9')//此处要记得加‘’ ,否则结果不正确
{
cout<<0<<s1[i]<<":";
break;
}
}
}
int cnt=0;
for(int i=0;i<s3.length();i++)
{
if(s3[i]==s4[i]&&(s3[i]>='a'&&s3[i]<='z'||s3[i]>='A'&&s3[i]<='Z'))//判读时间
{
if(i>9)
cout<<i<<endl;
else
cout<<0<<i<<endl;
}
}
return 0;
}