福爾摩斯的約會

題目描述

大偵探福爾摩斯接到一張奇怪的字條:“我們約會吧! 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>
#include<stdlib.h>
//#include<string.h>
//#include<string>
//#include <cstdlib>
//using namespace std;
#define MIN(x,y) ((x)<(y))?x:y
#define STRLEN 60
int timer[3];
int count=0;
void compare(char *s1,char *s2,int num)
{
    int i;
    for(i=0;*s1!=NULL&&*s2!=NULL&&count<num;i++,s1++,s2++){
        if(*s1==*s2)
          switch(count){
              case 0:
                  if(s1[0]>='A'&& s1[0]<='Z')
                    timer[count++]=s1[0]-'A'+1;
                  break;
              case 1:
                  if(s1[0]>='0'&& s1[0]<='9')
                    timer[count++]=s1[0]-'0';
                  else if(s1[0]>='A'&& s1[0]<='O')
                    timer[count++]=s1[0]-'A'+10;
                  break;
              case 2:
                  if((s1[0]>='a'&& s1[0]<='z')||(s1[0]>='A'&& s1[0]<='Z'))
                    timer[count++]=i;
              default:
                  break;
          }
    }
}
int main()
{
    char s1[STRLEN],s2[STRLEN],s3[STRLEN],s4[STRLEN];
    scanf("%s",s1);
    scanf("%s",s2);
    scanf("%s",s3);
    scanf("%s",s4);
    //printf("%s %s %s %s",s1,s2,s3,s4);
    compare(s1,s2,2);
    compare(s3,s4,3);
    //printf("%d %d %d",timer[0],timer[1],timer[2]);
    switch(timer[0]){
        case 1:
            printf("MON %02d:%02d\n",timer[1],timer[2]);
            break;
        case 2:
            printf("TUE %02d:%02d\n",timer[1],timer[2]);
            break;
        case 3:
            printf("WED %02d:%02d\n",timer[1],timer[2]);
            break;
        case 4:
            printf("THU %02d:%02d\n",timer[1],timer[2]);
            break;
        case 5:
            printf("FRI %02d:%02d\n",timer[1],timer[2]);
            break;
        case 6:
            printf("SAT %02d:%02d\n",timer[1],timer[2]);
            break;
        case 7:
            printf("SUN %02d:%02d\n",timer[1],timer[2]);
            break;
        default :
            break;
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章