【PAT乙级】1014 福尔摩斯的约会
目录
- 一、题目
- 二、我的AC代码
一、题目
1014 福尔摩斯的约会 (20分)
大侦探福尔摩斯接到一张奇怪的字条:
我们约会吧!
3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm
大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间 星期四 14:04
,因为前面两字符串中第 1 1 1 对相同的大写英文字母(大小写有区分)是第 4 4 4 个字母 D
,代表星期四;第 2 2 2 对相同的字符是 E
,那是第 5 5 5 个英文字母,代表一天里的第 14 14 14 个钟头(于是一天的 0 0 0 点到 23 23 23 点由数字 0 0 0 到 9 9 9、以及大写字母 A
到 N
表示);后面两字符串第 1 1 1 对相同的英文字母 s
出现在第 4 4 4 个位置(从 0 0 0 开始计数)上,代表第 4 4 4 分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。
输入格式:
输入在 4 4 4 行中分别给出 4 4 4 个非空、不包含空格、且长度不超过 60 60 60 的字符串。
输出格式:
在一行中输出约会的时间,格式为 DAY HH:MM
,其中 DAY
是某星期的 3 3 3 字符缩写,即 MON
表示星期一,TUE
表示星期二,WED
表示星期三,THU
表示星期四,FRI
表示星期五,SAT
表示星期六,SUN
表示星期日。题目输入保证每个测试存在唯一解。
输入样例:
3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm
输出样例:
THU 14:04
代码长度限制 16 KB
时间限制 200 ms
内存限制 64 MB
二、我的AC代码
#include <stdio.h>
#define MaxStringLength 60 //每行输入的字符串长度不超过60。const char Day[7][4]={"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"}; //星期几的英文简写。注意:字符串末尾有个结束符'\0',数组容量要加1。
const char Hour[24]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'}; //字符表示的小时数,是其对应的数组下标。int main(void)
{/* 读取4行字符串 */char Line[4][MaxStringLength+1]; //二维数组Line用于存放输入的4行字符串。二维数组Line的行数为4,列数为61。for(int i=0; i<4; i++){scanf("%s", &Line[i]); //逐行读入字符串。}int flag=0; //flag作为已经读取到有效数据个数的标志。/* 前两行字符串比较 */for(int i=0; i<MaxStringLength; i++){/* 如果上下字符相同 */if(Line[0][i] == Line[1][i]){/* 判断第一个有效字符 */if(flag==0){if(Line[0][i]>='A' && Line[1][i]<='G'){ //一周7天,所以对应的大写字母应该是'A'到'G'。printf("%s ", Day[Line[0][i] - 'A']); //根据当前的大写字母与大写字母'A'的ASCII码差值,输出星期数组中对应下标的星期几的英文简写字符串。flag=1; //表示已经找到一个有效数据。continue; //注意:此处让我一直全错,修正后就全对了。当找到是星期几的时候,已经将flag置为1了,一定要跳转到下一个循环,即i++,否则会直接进入flag=1条件下的判断。}}/* 判断第二个有效字符 */if(flag==1){if((Line[0][i]>='0' && Line[0][i]<='9') || (Line[0][i]>='A' && Line[0][i]<='N')){ //由题意,数字0~9和大写字母A~N分别代表小时数0~23。/* 逐个匹配字符,判断小时数是多少 */for(int j=0; j<24; j++){if(Hour[j] == Line[1][i]){printf("%02d:",j); //输出小时数,即输出小时数组对应的下标。格式化:2d表示输出为2位整数,前面的0表示整数不足2位时,在前面补零。flag=2; //表示已经找到两个有效数据。break; //前两行中的两个有效数据都已经找到,不用继续在前两行中查找了,跳出循环。}}}}}}/* 后两行字符串比较,也是判断第三个有效字符 */for(int i=0; i<MaxStringLength; i++){/* 如果上下字符相同 */if(Line[2][i] == Line[3][i]){if((Line[2][i]>='A' && Line[2][i]<='Z') || (Line[2][i]>='a' && Line[2][i]<='z')){ //判断是否是字母。printf("%02d", i); //输出分钟数,即输出字符在字符串中的下标。格式化:2d表示输出为2位整数,前面的0表示整数不足2位时,在前面补零。flag=3; //表示已经找到三个有效数据。可以省略,为了格式相同,我写上了。break; //后两行中的有效数据已经找到,不用继续查找了,跳出循环。}}}return 0;
}
【PAT乙级】1014 福尔摩斯的约会相关推荐
- pat 乙级 1014 福尔摩斯的约会 (C++)
题目 大侦探福尔摩斯接到一张奇怪的字条: 我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字 ...
- PAT乙级(1014 福尔摩斯的约会)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇 ...
- PAT 乙级1014 福尔摩斯的约会(C语言)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇 ...
- PAT 乙级 1014. 福尔摩斯的约会 (20) Java版
大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm".大侦 ...
- C++学习之路 | PTA乙级—— 1014 福尔摩斯的约会 (20分)(精简)
1014 福尔摩斯的约会 (20分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hys ...
- pat乙级 1014 java_pat乙级1014 福尔摩斯的约会
大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm".大侦 ...
- PAT乙类1014 福尔摩斯的约会 (20 分)
一.题目 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了 ...
- 浙江大学PAT (Basic Level) Practice (中文)1014福尔摩斯的约会JAVA实现代码及分析
1014 福尔摩斯的约会 这道题需要注意的地方有以下几点: ①决定星期几的是前两个字符串的第一个相同的大写字母,注意是第一个大写的字母,小写不算. ②决定分钟数的是后两对字符串的第一个相同的字母所出现 ...
- 1014 福尔摩斯的约会 (20 分)|一道我认为烂透了的题
1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...
最新文章
- 2010提高组-乌龟棋 [记忆优化搜索]
- C# json解析字符串总是多出双引号_在JavaScript应用中将CSV转换为JSON
- 5G 行业专网 — 公有云上的 5G 专网
- HDU 1492 The number of divisors(约数) about Humble Numbers(数论,简单约数)
- php里的utf-8编码,php – 修复损坏的UTF-8编码
- 语言nomogram校准曲线图_预测模型的概率校准
- java下载txt文本文件
- ASP.NET2.0 HiddenField控件
- 玩转Excel系列-SUMIF函数实例教程
- 用GDB调试PHP扩展
- 使用 IntraWeb (29) - 基本控件之 TIWAutherList、TIWAutherINI、TIWAutherEvent
- 记一次nodemanager无法启动的情况
- h3c交换机堆叠(IRF)配置三步完成
- String类的trim() 方法
- div是什么意思?HTML和CSS中div标签怎么用
- 数据库分库分表,分片配置轻松入门!
- get(obj, “a.b[0].c“, 0)
- 西瓜微数解析:微博热搜分析,为何金琦队长霸屏热搜!!
- 【分析方法】用户生命周期模型
- 为什么Rust这么受欢迎?
热门文章
- 计算机二级WPS 选择题(模拟和解析六)
- c语言点餐程序,C语言实现点餐系统
- MySQL数据库学习——啥是SQL语句?
- python怎么找论文资料_科研人 | 如何高效查找文献、紧跟研究领域热点和前沿?...
- python手机运行器_MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器
- BJTU 1688 Quartz的宝藏
- win10 离线安装.net framework 3.5并且无法安装错误代码0x800F081F
- QT 类静态函数作为回调函数
- 全志F133A/B开发板
- mysql 创建库 用户名_MYSQL-给带特殊符号的数据库创建用户名