其他分享
首页 > 其他分享> > PAT乙级真题1004-福尔摩斯的约会

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