//ac了,这题有空再做一遍
//这题一开始的题意理解有问题
//哈希反向的求法
//%02d的使用
#include<stdio.h>
#include<string.h>
//#define LOCAL
char week[7][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
int main(){
#ifdef LOCAL
freopen("B1014data.in","r",stdin);
freopen("B1014data.out","w",stdout);
#endif
//这一题四个字符串没有很密切的递推关系,所以就不需要使用二维数组了
char str1[60],str2[60],str3[60],str4[60];
//这里其实可以,用gets()更好一点,我去真的要疯了
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
scanf("%s",str4);
int len1=strlen(str1);
int len2=strlen(str2);
int len3=strlen(str3);
int len4=strlen(str4);
int i;
//星期
for(i=0;i<len1&&i<len2;i++){
if(str1[i]==str2[i]&&str1[i]>='A'&&str1[i]<='G'){
printf("%s ",week[str1[i]-'A']);
break;//又用到break,注意!
}
}
//时
for(i++;i<len1&&i<len2;i++){
if(str1[i]==str2[i]){
//相等了还要分两种情况:0~9的,10~23的,也就是A~N
if(str1[i]>='0'&&str1[i]<='9'){
printf("%02d:",str1[i]-'0');//输出字符,所以要减0,与字符0的差值,就是数值
break;
}
else if(str1[i]>='A'&&str1[i]<='N'){
printf("%02d:",str1[i]-'A'+10);//输出10~23,其实从这里看出只要看范围就好写出式子了
break;
}
}
}
//分
//寻扎str3和str4中第一队相同位置的A~Z或者a~z范围的英文字母
for(i=0;i<len3&&i<len4;i++){
if(str3[i]==str4[i]){
if(str3[i]>='A'&&str3[i]<='Z'||str3[i]>='a'&&str3[i]<='z'){
printf("%02d\n",i);
break;
}
}
}
return 0;
}
PAT B1014或A1061 福尔摩斯的约会
最新推荐文章于 2024-06-23 00:05:19 发布