https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560
思路
1.星期几只有7天,只需要前7个字母(测试点四);
2.小时的判断,找到第二对相同字母马上break。这里的两个break放在外面的话 测试点一二会失败 按理说应该一样才对;
#include <iostream>
using namespace std;
int main()
{
string s[4],week[7]= {"MON ","TUE ","WED ","THU ","FRI ","SAT ","SUN "};
int i,flag; //flag记录当前是第几对相同字母
for(i=0; i<4; i++)
cin>>s[i];
for(i=0,flag=0; i<s[0].length(); i++) {
if(flag==0 && s[0][i]==s[1][i]
&& s[0][i]>='A' && s[0][i]<='G') {
//第一对相同大写字母
cout<<week[s[0][i]-'A'];
flag=1;
} else if(flag==1 && s[0][i]==s[1][i]) {
//第二对大写字母 这里去掉else会答案错误 不知道为啥···
if(s[0][i]>='0' && s[0][i]<='9') {
printf("%02d:",s[0][i]-'0');
break;
} else if(s[0][i]>='A' && s[0][i]<='A'+13) {
printf("%02d:",s[0][i]-'A'+10);
break;
}
}
}//for
for (i=0; s[2][i]!='\0' && s[3][i]!='\0'; i++) {
if (s[2][i]==s[3][i] &&
( s[2][i]>='A' && s[2][i]<='Z' || s[2][i]>='a' && s[2][i]<='z') ) {
printf("%02d",i);
break;
}
}
}