PAT 乙级 -- 1014 -- 福尔摩斯的约会
题目简介
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
思路
此题主要挖坑在取值范围上,星期取值必须大写且范围A-G,分钟取值需大写且依题意范围应在0-N之间,秒数只需字符相等即可。
C++代码样例
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
const char *const week_array[] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
const char hournum[] = {'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)
{
unsigned int i = 0, k = 0;
int count = 0;
char *str1 = (char *)malloc(sizeof(char) * 65);
char *str2 = (char *)malloc(sizeof(char) * 65);
char *str3 = (char *)malloc(sizeof(char) * 65);
char *str4 = (char *)malloc(sizeof(char) * 65);
memset(str1, 0, sizeof(str1) * 65);
memset(str2, 0, sizeof(str2) * 65);
memset(str3, 0, sizeof(str3) * 65);
memset(str4, 0, sizeof(str4) * 65);
gets(str1);
gets(str2);
gets(str3);
gets(str4);
for(i = 0; i < strlen(str1) && i < strlen(str2); i++)
{
if(str1[i] == str2[i] && count >= 0 && count < 2)
{
if(str1[i] <= 'G' && str1[i] >= 'A' && count == 0)
{
printf("%s ", week_array[str1[i] - 'A']);
count++;
continue;
}
else if(count == 1)
{
if((str1[i] <= '9' && str1[i] >= '0') || (str1[i] >= 'A' && str1[i] <= 'N'))
{
for(k = 0; k < 24; k++)
{
if(hournum[k] == str1[i])
{
printf("%02d", k);
count++;
break;
}
}
}
}
}
if(count == 2)
{
break;
}
}
for(i = 0; i < strlen(str3) && i < strlen(str4); i++)
{
if(str3[i] == str4[i])
{
if((str3[i] <= 'z' && str3[i] >= 'a') || (str3[i] <= 'Z' && str3[i] >= 'A'))
{
printf(":%02d", i);
return 0;
}
}
}
return 0;
}
PAT 乙级 -- 1014 -- 福尔摩斯的约会的更多相关文章
- PAT乙级 1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...
- PAT 乙级 1014 福尔摩斯的约会 (20) C++版
1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...
- 【PAT】1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...
- PAT(B) 1014 福尔摩斯的约会(Java)
题目链接:1014 福尔摩斯的约会 注意 三个字眼:"第1对","第2对","第1对",因此如果你用了循环,别忘了break,因为后面也可能 ...
- PAT Basic 1014 福尔摩斯的约会 (20 分)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇 ...
- PAT Basic 1014 福尔摩斯的约会 (20 分) Advanced 1061 Dating (20 分)
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇 ...
- PAT乙级:1014 福尔摩斯的约会 (20分)
PAT乙级:1014 福尔摩斯的约会 (20分) 题干 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk ...
- 浙江大学PAT上机题解析之1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 时间限制 50 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Y ...
- PAT 1014 福尔摩斯的约会 (20)(代码+思路)
1014 福尔摩斯的约会 (20)(20 分) 大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfd ...
随机推荐
- 六. SpringCloud网关
1. Gateway概述 1.1 Gateway是什么 服务网关还可以用Zuul网关,但是Zuul网关由于一些维护问题,所以这里我们学习Gateway网关,SpringCloud全家桶里有个很重要的组 ...
- Java 常见对象 04
常见对象·Arrays 类和 包装类 数组高级冒泡排序原理图解 * A:画图演示 * 需求: 数组元素:{24, 69, 80, 57, 13} 请对数组元素进行排序 * 冒泡排序: 相邻元素两两比较 ...
- 泛微OA 多版本存在命令执行
参考 https://blog.csdn.net/qq_41770175/article/details/102821349 https://www.linktrust.net/oday/471.ht ...
- Python基础(2)——循环和分支[xiaoshun]
一.瞎扯 世界上一切的系统都可以被'分支'表示.循环也是分支,只不过又重复之前的'分支'选择罢了.程序如人生,每一次的'分支',每一次的选择,都会有不同的结果: 有的选择止步不前,无限循环: 有的选择 ...
- Java 语言基础 (初识Java语言, 变量和数据类型, 运算符, 流程控制语句, 数组)
初始 Java 语言 Java SE -- Java Platform, Standard Edition 是 Java 平台的基础 Java SE 以前称为 J2SE, 可以编写桌面应用和基于 we ...
- 基于autofac的属性注入
基于autofac的属性注入 什么是属性注入 在了解属性注入之前,要先了解一下DI(Dependency Injection),即依赖注入.在ASP.NET Core里自带了一个IOC容器,而且程序支 ...
- kmp&字典树 模板
kmp: const int maxn=1e5+5; char s[maxn],p[maxn]; int nex[maxn]; int KmpSearch(char* s, char* p) { in ...
- DNA序列(JAVA语言)
package 第三章习题; /* * 输入m个长度均为n的DNA序列,求一个DNA序列,到所有序列的总Hamming距离尽量小. * 两个等长字符串的Hamming距离等于字符不同的位置个数, ...
- WERTYU_键盘错位(JAVA语言)
package 第三章; import java.util.Scanner; /* * 把手放在键盘上时,稍不注意就会往右错一位.这样,输入Q会变成输入W,输入J会变成输入K等. 输 ...
- 利用matplotlib和cmaps根据已有的colormap,重新定义colormap
算法网上这哥们总结的还可以[1] ,但是使用matplotlib自定义colormap自己掌握的还不够,写在这里 希望达到的目标 使用什么样的颜色,可以自己定义 方便的调用其他人的色标, 使用一部分c ...