PAT B1014 福尔摩斯约会
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 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(星期一到星期日只有7天)中相等的字符,得到星期几(当前字符-'A')
对应于相应的字符输出。
第二步,在第一步查找的基础上(也就是在第一步查找之后的剩余字符串中)查找0~9或者A~N中相等的字符,(A~N对应于10~23时),得到小时输出。
第三步,查找第三个和第四个字符串,找到A~Z或者a~z中的相等的字符串,得到分钟数(当前的下标)输出。
需要注意的点就是输出格式,第二次查找的位置以及对A~N和A~G的限制。
#include<iostream>
#include<cstring> using namespace std; int main() {
char week[7][5] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
char str1[70], str2[70], str3[70], str4[70];
gets_s(str1);
gets_s(str2);
gets_s(str3);
gets_s(str4);
int len1 = strlen(str1), len2 = strlen(str2), len3 = strlen(str3), len4 = strlen(str4);
int i;
for (i = 0; i < len1&&i < len2; i++) {
//星期一到星期日必须在A~G中间,否则得到结果错误的
if (str1[i] == str2[i] && str1[i] >= 'A'&&str1[i] <= 'G') {
cout << week[str1[i] - 'A']<<" ";//找到第一对就输出并结束查找
break;
}
}
//找时间的时候从第一对结果之后(i++)开始查找
for (i++; i < len1&&i < len2; i++) {
if (str1[i] == str2[i]) {
//0~9表示0点到9点,A~N表示10~23点
if (str1[i] >= '0'&&str1[i] <= '9') {
printf("%02d", str1[i] - '0');
break;
}
else if (str1[i]>='A'&&str1[i]<='N') {
printf("%02d", str1[i] - 'A' + 10);
break;
}
}
}
//查找str3和str4字符串中A~Z和a~z的字符串对
for (i = 0; i < len3&&i < len4; i++) {
if (str3[i] == str4[i]) {
if ((str3[i] >= 'A'&&str3[i] <= 'Z') || (str3[i] >= 'a'&&str3[i] <= 'z')) {
printf(":%02d\n", i);
}
}
}
system("pause");
return 0;
}
PAT B1014 福尔摩斯约会的更多相关文章
- 【PAT】B1014 福尔摩斯的约会
因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四: 第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 ...
- PAT B1014/A1061 福尔摩斯的约会(20)
书中AC代码 #include <cstdio> #include <iostream> #include <cstring> using namespace st ...
- PAT 1014. 福尔摩斯的约会 (20)
大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm".大侦 ...
- PAT 1014 福尔摩斯的约会
https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560 大侦探福尔摩斯接到一张奇怪的字条:“我们约会 ...
- PAT 1014 福尔摩斯的约会 (20)(代码+思路)
1014 福尔摩斯的约会 (20)(20 分) 大侦探福尔摩斯接到一张奇怪的字条:"我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfd ...
- PAT——1014. 福尔摩斯的约会
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”.大侦探很快就明白了,字条 ...
- 【算法笔记】B1014 福尔摩斯的约会
1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hy ...
- 牛客网PAT练兵场-福尔摩斯的约会
题目地址:https://www.nowcoder.com/pat/6/problem/4040 题意:模拟题,循环找相同的字母,但是注意题目的坑 /** * *作者:Ycute *时间:2019-1 ...
- B1014. 福尔摩斯的约会
14/20 #include<bits/stdc++.h> using namespace std; map<char,string> day; int main(){ day ...
随机推荐
- 六、Java方法
Java方法 何为方法 System.out.println(),那么它是什么呢? System是一个类,out是一个对象,println()是一个方法 Java方法是语句的集合,它们在一起执行的 ...
- laravel中{{}}和{!! !!}的区别详解
{{}}支持转义 一段html代码只是被当成普通的字符串输出 {!! !!} 不支持转义 一段html代码可以被正常的解析 public function html(){ $address=" ...
- think php 富框架文本编辑器
商品的详细描述一般都是图文混合.对于图文混合的内容,需要使用富文本编辑器来实现. Ueditor富文本编辑器的下载地址: http://ueditor.baidu.com/website/downlo ...
- S5700上三层Vlan间隔离的例子
转自:https://forum.huawei.com/enterprise/zh/forum.php?mod=viewthread&tid=247591 公司最近的无线覆盖做好了,但让人无语 ...
- MySQL8.0降级安装5.7
本文旨在自我学习使用,如有任何疑问请及时联系博主 前言 基于OpenHarmony的FA数字管家服务端 默认情况下,Ubuntu20.04安装MySQL的版本为8.0.但8.0更加严格的加密规则,使得 ...
- MSSQL得知密码后getshell
本文用了 sql server 2000和sql server 2008 MSSQL连接 连接MSSQL 2000 新建连接: 填写目的IP.目的端口.用户名.密码: 一直下一步,完成后,数据库导航窗 ...
- Spring---Spring专题(二)
1.Spring配置数据源 1.1 数据源(连接池)的作用 数据源(连接池)是提高程序性能而出现的 事先实例化数据源,初始化部分链接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 ...
- HTTP与HTTPS有什么区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂 ...
- springboot项目yml中使用中文注释报错的解决方法1
启动springboot项目时报错:/application.yml.....这大致就是说application.yml有问题,那么目前我所知道的大致两种情况会报错,第一种是yml格式有问题,要注意缩 ...
- Spring cloud config 客户端连接RabbitMQ 报 socket closed
java.net.SocketException: socket closed at java.net.SocketInputStream.socketRead0(Native Method) ...