1014. 福尔摩斯的约会

来源:互联网 发布:国家数据恢复中心费用 编辑:程序博客网 时间:2024/03/28 21:36

1014. 福尔摩斯的约会 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
#include <stdio.h>int main(){  char str1[8][4] = { " ","MON","TUE","WED","THU","FRI","SAT","SUN" };  char str2[61], str3[61], str4[61], str5[61];  int i = 0, flag = 0;  gets(str2);  gets(str3);  gets(str4);  gets(str5);  while (str2[i] != '\0' && str3[i] != '\0')  {    if (flag == 0)    {      if ('A' <= str2[i] && str2[i] <= 'G')// 第一行和第二行第一对相同位置、相同大写字母(A~G)        if (str2[i] == str3[i])        {          printf("%s ", str1[str2[i] - 'A'+1]);          flag++;        }    }    else      if ('0' <= str2[i] && str2[i] <= '9')//第一行和第二行第二对相同位置、相同大写字母(A~N)或数字(0~9 )。 注意:是第二对,找到第二对就应该结循环了!      {        if (str2[i] == str3[i])        {          printf("%02d:", str2[i] - '0');          break;        }      }      else if ('A' <= str2[i] && str2[i] <= 'N')      {        if (str2[i] == str3[i])        {          printf("%02d:", str2[i] - 55);          break;        }      }    i++;  }  i = 0;  while (str4[i] != '\0' && str5[i] != '\0')  {    if (('a' <= str4[i] && str4[i] <= 'z')||('A' <= str4[i] && str4[i] <= 'Z'))//第三行和第四行相同位置相同字母,不分大小写。        if (str4[i] == str5[i])          printf("%02d\n", i);    i++;  }}

1 0
原创粉丝点击