题目描述
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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<iostream>
#include<string.h>
using namespace std;
int compare(char *str1,char* str2,char *same,int flag,int len1,int len2);
int select(char *same);
int main()
{char str1[60],str2[60],str3[60],str4[60],same;
int flag=0,len1,len2,len3,len4;
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
scanf("%s",str4);
len1=strlen(str1);
len2=strlen(str2);
len3=strlen(str3);
len4=strlen(str4);
compare(str1,str2,&same,0,len1,len2);//[0][0] [0][1] 存大写
compare(str3,str4,&same,1,len3,len4);//[1][0] [1][1] 存小写
return 0;
}
int compare(char *str1,char* str2,char *same,int flag,int len1,int len2)
{
int i=0,counter=0;
if(flag==0)
while(*str1!='\0'&&*str2!='\0')
{ if(*str1==*str2&&*str1>='A'&&*str1<='Z')
{ if(i==0) //未相同
{*same=*str1;
switch(*same)
{ case 'A':{cout<<"MON ";break;}
case 'B':{cout<<"TUE ";break;}
case 'C':{cout<<"WED ";break;}
case 'D':{cout<<"THU ";break;}
case 'E':{cout<<"FRI ";break;}
case 'F':{cout<<"SAT ";break;}
default :{cout<<"SUN ";break;}
}
}
i++;
}
str1++;str2++;
counter++;
if(*str1==*str2&&i==1)
{switch(*str1)
{case '0':{cout<<"00:";break;}
case '1':{cout<<"01:";break;}
case '2':{cout<<"02:";break;}
case '3':{cout<<"03:";break;}
case '4':{cout<<"04:";break;}
case '5':{cout<<"05:";break;}
case '6':{cout<<"06:";break;}
case '7':{cout<<"07:";break;}
case '8':{cout<<"08:";break;}
case '9':{cout<<"09:";break;}
case 'A':{cout<<"10:";break;}
case 'B':{cout<<"11:";break;}
case 'C':{cout<<"12:";break;}
case 'D':{cout<<"13:";break;}
case 'E':{cout<<"14:";break;}
case 'F':{cout<<"15:";break;}
case 'G':{cout<<"16:";break;}
case 'H':{cout<<"17:";break;}
case 'I':{cout<<"18:";break;}
case 'J':{cout<<"19:";break;}
case 'K':{cout<<"20:";break;}
case 'L':{cout<<"21:";break;}
case 'M':{cout<<"22:";break;}
default :{cout<<"23:";break;}
}
i++;
}
}
else if(flag==1)
{ int counter2=0,i2=0;
while(*str1!='\0'&&*str2!='\0')
{ if(*str1==*str2&&*str1>='a'&&*str1<='z'&&i2==0)
{switch(counter2/10)
{case 0:{cout<<"0";break;}
case 1:{cout<<"1";break;}
case 2:{cout<<"2";break;}
case 3:{cout<<"3";break;}
case 4:{cout<<"4";break;}
case 5:{cout<<"5";break;}
case 6:{cout<<"6";break;}
case 7:{cout<<"7";break;}
case 8:{cout<<"8";break;}
default :{cout<<"9 ";break;}
}
switch(counter2%10)
{case 0:{cout<<"0";break;}
case 1:{cout<<"1";break;}
case 2:{cout<<"2";break;}
case 3:{cout<<"3";break;}
case 4:{cout<<"4";break;}
case 5:{cout<<"5";break;}
case 6:{cout<<"6";break;}
case 7:{cout<<"7";break;}
case 8:{cout<<"8";break;}
default :{cout<<"9 ";break;}
}
i2++;
}
str1++;str2++;
counter2++;
}
}
return 0;
}