PAT 1014 福尔摩斯的约会 (20)(代码+思路)
1014 福尔摩斯的约会 (20)(20 分)
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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),对应字母表的顺序,例如:A(星期一),B(星期二)...
破译小时:注意要在破解星期之后才能破解小时,即之后的第一对相同的字符(0-9+A-N(刚好24个字符对应24个小时))。
破译分钟:只要在后2个字符串中找第一个相同的英文字母,对应的位置(即字符下标),代表分钟。
#include <iostream>
#include<string>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
string str[4];
int min1, min2;
int flag = 0;
string day[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
int d = 0, h = 0, m = 0;
cin >> str[0] >> str[1] >> str[2] >> str[3]; //输入4个字符串
min1 = str[0].length() < str[1].length() ? str[0].length() : str[1].length();
min2 = str[2].length() < str[3].length() ? str[2].length() : str[3].length();
for (int i = 0; i < min1; i++) {
if (!flag&&str[0][i] == str[1][i] && str[0][i] >= 'A'&&str[0][i] <= 'G') {
d = str[0][i] - 'A';
flag = 1;
}
else if (flag&&str[0][i] == str[1][i] && ((str[0][i] >= 'A'&&str[0][i] <= 'N') || isdigit(str[0][i]))) {
if ((str[0][i] >= 'A'&&str[1][i] <= 'N'))
h = str[0][i] - 'A' + 10;
else
h = str[0][i] - '0';
break;
}
}
for (int i = 0; i < min2; i++) {
if (str[2][i] == str[3][i] && isalpha(str[2][i])) {
m = i;
break;
}
}
cout << day[d] << " " << setw(2) << setfill('0') << h << ":" << setw(2) << setfill('0') << m;
return 0;
}
PAT 1014 福尔摩斯的约会 (20)(代码+思路)的更多相关文章
- PAT 1014. 福尔摩斯的约会 (20)
大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm".大侦 ...
- PAT乙级:1014 福尔摩斯的约会 (20分)
PAT乙级:1014 福尔摩斯的约会 (20分) 题干 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk ...
- PAT乙级 1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...
- 浙江大学PAT上机题解析之1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 时间限制 50 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Y ...
- 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 (Basic Level) Practise (中文)- 1014. 福尔摩斯的约会 (20)
http://www.patest.cn/contests/pat-b-practise/1014 1014. 福尔摩斯的约会 (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 ...
- PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20分)
1014 福尔摩斯的约会 (20分) 带侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hys ...
- PAT-乙级-1014. 福尔摩斯的约会 (20)
1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...
随机推荐
- 100个常用的Linux命令——转载
1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2 ...
- 关于scp在zsh报错:zsh:no matches found :
我要将某一目录下面所有文件拷贝的时候,scp *.jpg 的时候,报错 zsh: no matchs found:path 其实是zsh自己解析了*号,所以,只要给*加上就可以了\ scp \*.jp ...
- Matlab练习——rpy2tr函数与自己实现的ZYX欧拉角的结果不同的问题
问题背景:在根据<机器人导论>这本书的Z-Y-X欧拉角原理用Matlab实现旋转矩阵求解时,发现与直接调用机器人工具箱中的rpy2tr()函数得出的结果并不相同. 首先:先检查自己写的函数 ...
- spring .cloud ------------java.lang.RuntimeException: com.netflix.client.ClientException,Caused by: java.lang.IllegalArgumentException: MIME type may not contain reserved characters
1.问题的发生 Feign在默认情况下使用的是JDK原生的URLConnection发送HTTP请求,没有连接池,但是对每个地址会保持一个长连接,即利用HTTP的persistence connect ...
- python 删除模块
import systry: import librabbitmqexcept Exception: passelse: version = getattr(librabbitmq, ...
- PHP源码安装经常会碰到的问题及解决办法
错误:configure: error: freetype-config not found. 解决:yum install freetype-devel 错误:configure: error: l ...
- Bdfproxy
基于流量劫持动态注入shellcode 本机IP:192.168.1.113 靶机IP:192.168.1.114 先安装bdfproxy,mitmproxy,backdoor_factory 开启流 ...
- Oracle 入门
一.安装Oracle 11g 服务端 服务端安装教程:https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html 二.安装客户端 客 ...
- ss源码学习--事件处理
为了方便区分,以下分别使用local,server,remote代表ss客户端,ss服务端,以及ss客户端请求访问的远程主机. 在shadowsocks中,无论对于local还是server,都需要建 ...
- 103. Binary Tree Zigzag Level Order Traversal (Tree, Queue; BFS)
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...