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)(代码+思路)的更多相关文章

  1. PAT 1014. 福尔摩斯的约会 (20)

    大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm".大侦 ...

  2. PAT乙级:1014 福尔摩斯的约会 (20分)

    PAT乙级:1014 福尔摩斯的约会 (20分) 题干 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk ...

  3. PAT乙级 1014. 福尔摩斯的约会 (20)

    1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...

  4. 浙江大学PAT上机题解析之1014. 福尔摩斯的约会 (20)

    1014. 福尔摩斯的约会 (20) 时间限制   50 ms 内存限制   32000 kB 代码长度限制   8000 B 判题程序     Standard     作者     CHEN, Y ...

  5. PAT 乙级 1014 福尔摩斯的约会 (20) C++版

    1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...

  6. 【PAT】1014. 福尔摩斯的约会 (20)

    1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...

  7. PAT (Basic Level) Practise (中文)- 1014. 福尔摩斯的约会 (20)

    http://www.patest.cn/contests/pat-b-practise/1014 1014. 福尔摩斯的约会 (20) 时间限制 50 ms 内存限制 65536 kB 代码长度限制 ...

  8. PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20分)

    1014 福尔摩斯的约会 (20分) 带侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hys ...

  9. PAT-乙级-1014. 福尔摩斯的约会 (20)

    1014. 福尔摩斯的约会 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大侦探福尔摩斯接到一张奇怪的 ...

随机推荐

  1. Swift的UILabel的一些属性

    let label = UILabel(frame: CGRectMake(,,,)) label.backgroundColor = UIColor.redColor() label.text = ...

  2. C# Excel To DataTable

    原地址忘了 需引用NPOI,引用方法:项目引用那儿右键 => 管理NuGet程序包 => 游览 =>输入NPOI =>选中NPOI后安装(一般是第一个) /// <sum ...

  3. 吴裕雄 python神经网络 水果图片识别(5)

    #-*- coding:utf-8 -*-### required libaraiedimport osimport matplotlib.image as imgimport matplotlib. ...

  4. Oracle监听程序未启动或数据库服务未注册到该监听

    oracle新建数据库的时候提示Could not find appropriate listener for this database要做的操作如下: 1.查看netmanager里面的liste ...

  5. Centos7安装Oracle 11gR2

    ======================================== - 环境:VM12+centos7 x86_64 minimal - 最小化安装的Centos7 - 虚拟机配置- 5 ...

  6. shiro 基于springmvc中做登陆功能

    1.添加依赖 <!-- shiro --> <dependency> <groupId>org.apache.shiro</groupId> <a ...

  7. metasploit framework(六):信息收集

    nmap 扫描 扫描完毕之后,hosts查看扫描的结果 auxiliary 扫描 使用arpsweep模块扫描 查看设置 设置网卡和目标IP 设置伪造的源IP和源MAC set SHOST <伪 ...

  8. 执行SDK的aapt报错./aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./aapt)

    问题| 执行SDK下的aapt报错./aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./aapt)   ../ ...

  9. extJS 动态引用加载(转)

    ExtJs有庞大的类型库,很多类可能在当前的页面根本不会用到,我们可以引入动态加载的概念来即用即取.这些代码都要写在Ext.onReady外面. 1.动态引用外部Js //加载配置可用 Ext.Loa ...

  10. Redis备份及回收策略

    Redis备份(持久化) Redis备份存在两种方式: 1.一种是"RDB".是快照(snapshotting),它是备份当前瞬间Redis在内存中的数据记录; 2.另一种是&qu ...