PAT乙级真题1004-福尔摩斯的约会
作者:互联网
题目描述
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
//1004
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string a1,a2,b1,b2;
cin>>a1>>a2>>b1>>b2;
int la1,la2,lb1,lb2;
la1=a1.length();
la2=a2.length();
lb1=b1.length();
lb2=b2.length();
char ca1[la1];
char ca2[la2];
char cb1[lb1];
char cb2[lb2];
strcpy(ca1,a1.c_str());
strcpy(ca2,a2.c_str());
strcpy(cb1,b1.c_str());
strcpy(cb2,b2.c_str());
int i=0,count1=0,count2=0,s=0,m=0,k=0;
//记录第一组数据得到的信息
char time[3];
for(i=0;i<la1&&i<la2;i++)
{
if((ca1[i]>'A'||ca1[i]=='A')&&(ca1[i]<'Z'||ca1[i]=='Z')&&ca1[i]==ca2[i])
{
//printf("a1中的字符为:%c a2中相同的字符为:%c\n",ca1[i],ca2[i]);
count1++;
if(count1==1)
{
time[0]=ca1[i];
m=i;
break;
}
}
}
m=m+1;
for(k=m;k<la1&&k<la2;k++)
{
if(ca1[k]==ca2[k])
{
if((ca1[k]>'0'||ca1[k]=='0')&&(ca1[k]<'9'||ca1[k]=='9'))
{
time[1]=ca1[k];
break;
}
if((ca1[k]>'A'||ca1[k]=='A')&&(ca1[k]<'Z'||ca1[k]=='Z'))
{
time[1]=ca1[k];
break;
}
}
}
//第二组字符串的信息
for(i=0;i<lb1&&i<lb2;i++)
{
if((cb1[i]>'a'||cb1[i]=='a')&&(cb1[i]<'z'||cb1[i]=='z')&&cb1[i]==cb2[i])
{
s=i;
break;
}
if((cb1[i]>'A'||cb1[i]=='A')&&(cb1[i]<'Z'||cb1[i]=='Z')&&cb1[i]==cb2[i])
{
s=i;
break;
}
}
if(time[0]=='A')
{
cout<<"MON ";
}
if(time[0]=='B')
{
cout<<"TUE ";
}
if(time[0]=='C')
{
cout<<"WED ";
}
if(time[0]=='D')
{
cout<<"THU ";
}
if(time[0]=='E')
{
cout<<"FRI ";
}
if(time[0]=='F')
{
cout<<"SAT ";
}
if(time[0]=='G')
{
cout<<"SUN ";
}
//小时
if(time[1]=='A')
{
cout<<"10";
}
if(time[1]=='B')
{
cout<<"11";
}
if(time[1]=='C')
{
cout<<"12";
}
if(time[1]=='D')
{
cout<<"13";
}
if(time[1]=='E')
{
cout<<"14";
}
if(time[1]=='F')
{
cout<<"15";
}
if(time[1]=='G')
{
cout<<"16";
}if(time[1]=='H')
{
cout<<"17";
}if(time[1]=='I')
{
cout<<"18";
}if(time[1]=='J')
{
cout<<"19";
}if(time[1]=='K')
{
cout<<"20";
}if(time[1]=='L')
{
cout<<"21";
}if(time[1]=='M')
{
cout<<"22";
}if(time[1]=='N')
{
cout<<"23";
}
if((time[1]>'0'||time[1]=='0')&&(time[1]<'9'||time[1]=='9'))
{
cout<<"0"<<time[1];
}
//分钟
if(s<10)
{
cout<<":0"<<s<<endl;
}
else
{
cout<<":"<<s<<endl;
}
return 0;
}
徐知墨
发布了7 篇原创文章 · 获赞 2 · 访问量 95
私信
关注
标签:PAT,真题,ca1,福尔摩斯,char,cb1,b1,&&,strcpy 来源: https://blog.csdn.net/qq_41865468/article/details/104060750