题目描述
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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<cstring>
using namespace std;
void week_hour(string str1,string str2)
{
string WEEK[7]={"MON ","TUE ","WED ","THU ","FRI ","SAT ","SUN "};
int length1,length2,i,i_old;
char week_hour;
bool f_daxie=0;
length1 = str1.length();
length2 = str2.length();
for(i=0;i<length1&&i<length2;i++)
{
if((str1[i]>='a' && str1[i]<='z')&&(str2[i]>='a' && str2[i]<='z'))
{
if(str1[i]==str2[i])
{
week_hour=str1[i];
f_daxie=0;
i_old=i;
break;
}
}
else if((str1[i]>='A' && str1[i]<='Z')&&(str2[i]>='A' && str2[i]<='Z'))
{
if(str1[i]==str2[i])
{
week_hour=str1[i];
f_daxie=1;
i_old=i;
break;
}
}
}
if(f_daxie)
{
cout<<WEEK[week_hour-'A'];
}
else
{
cout<<WEEK[week_hour-'a'];
}
for(i=i_old+1;i<length1&&i<length2;i++)
{
if((str1[i]>='0' && str1[i]<='9')&&(str2[i]>='0' && str2[i]<='9'))
{
if(str1[i]==str2[i])
{
week_hour=str1[i];
break;
}
}
else if((str1[i]>='a' && str1[i]<='z')&&(str2[i]>='a' && str2[i]<='z'))
{
if(str1[i]==str2[i])
{
week_hour=str1[i];
break;
}
}
else if((str1[i]>='A' && str1[i]<='Z')&&(str2[i]>='A' && str2[i]<='Z'))
{
if(str1[i]==str2[i])
{
week_hour=str1[i];
break;
}
}
}
if(week_hour>='0'&&week_hour<='9')
{
cout<<"0"<<week_hour-'0'<<":";
}
else
{
if(week_hour>='a'&&week_hour<='z')
{
week_hour=week_hour-'a'+10;
cout<<week_hour<<":";
}
else
if(week_hour>='A'&&week_hour<='Z')
cout<<week_hour-'A'+10<<":";
}
}
void min(string str1,string str2)
{
int length1,length2,i;
int min;
bool f_daxie=0;
length1 = str1.length();
length2 = str2.length();
for(i=0;i<length1&&i<length2;i++)
{
if((str1[i]>='a' && str1[i]<='z')&&(str2[i]>='a' && str2[i]<='z'))
{
if(str1[i]==str2[i])
{
min=i;
break;
}
}
else if((str1[i]>='A' && str1[i]<='Z')&&(str2[i]>='A' && str2[i]<='Z'))
{
if(str1[i]==str2[i])
{
min=i;
break;
}
}
}
if(min>=0 && min<=9)
cout<<"0"<<min;
else cout<<min;
}
int main()
{
string week_hour1,week_hour2,min1,min2;
cin>>week_hour1>>week_hour2>>min1>>min2;
week_hour(week_hour1,week_hour2);
min(min1,min2);
return 0;
}