大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);后面两字符串第1对相同的英文字母's'出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。
输入格式:
输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。
输出格式:
在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。
输入样例:
3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm
输出样例:
THU 14:04
注意不仅要满足相同,还要满足时间的要求。譬如在天数上,相同的字母只能是A-G
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 using namespace std; 7 8 int main() 9 { 10 int day,hour,minn; 11 char a[65],b[65],c[65],d[65]; 12 cin>>a>>b>>c>>d; 13 int lena=strlen(a),lenb=strlen(b); 14 int lenc=strlen(c),lend=strlen(d); 15 int i; 16 int len1=min(lena,lenb),len2=min(lenc,lend); 17 for(i=0;i<len1;i++) 18 { 19 if(a[i]==b[i]&&a[i]>='A'&&a[i]<='G') 20 { 21 day=a[i]-'A'+1; 22 break; 23 } 24 } 25 i++; 26 for(;i<len1;i++) 27 { 28 if(a[i]==b[i]) 29 { 30 if(a[i]>='0'&&a[i]<='9') 31 { 32 hour=a[i]-'0'; 33 break; 34 } 35 else if(a[i]>='A'&&a[i]<='N') 36 { 37 hour=a[i]-'A'+10; 38 break; 39 } 40 } 41 } 42 for(i=0;i<len2;i++) 43 { 44 if(c[i]==d[i]&&c[i]>='a'&&a[i]<='z') 45 { 46 minn=i; 47 break; 48 } 49 if(c[i]==d[i]&&c[i]>='A'&&c[i]<='Z') 50 { 51 minn=i; 52 break; 53 } 54 } 55 if(day==1) 56 printf("MON "); 57 else if(day==2) 58 printf("TUE "); 59 else if(day==3) 60 printf("WED "); 61 else if(day==4) 62 printf("THU "); 63 else if(day==5) 64 printf("FRI "); 65 else if(day==6) 66 printf("SAT "); 67 else if(day==7) 68 printf("SUN "); 69 if(hour<10) 70 printf("0%d:",hour); 71 else 72 printf("%d:",hour); 73 if(minn<10) 74 printf("0%d ",minn); 75 else 76 printf("%d ",minn); 77 return 0; 78 }