大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 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 表示星期日。题目输入保证每个测试存在唯一解。

输入样例:

  1. 3485djDkxh4hhGE
  2. 2984akDfkkkkggEdsb
  3. s&hgsfdk
  4. d&Hyscvnm
 

输出样例:

  1. THU 14:04

    解题思路:主要是读明白题中的查找规则。
    第一步,需要查找第一和第二个字符串,找到第一对相等的A~G(星期一到星期日只有7天)中相等的字符,得到星期几(当前字符-'A'
    对应于相应的字符输出。
    第二步,在第一步查找的基础上(也就是在第一步查找之后的剩余字符串中)查找0~9或者A~N中相等的字符,(A~N对应于10~23时),得到小时输出。
    第三步,查找第三个和第四个字符串,找到A~Z或者a~z中的相等的字符串,得到分钟数(当前的下标)输出。

    需要注意的点就是输出格式,第二次查找的位置以及对A~NA~G的限制。
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. char week[7][5] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
  8. char str1[70], str2[70], str3[70], str4[70];
  9. gets_s(str1);
  10. gets_s(str2);
  11. gets_s(str3);
  12. gets_s(str4);
  13. int len1 = strlen(str1), len2 = strlen(str2), len3 = strlen(str3), len4 = strlen(str4);
  14. int i;
  15. for (i = 0; i < len1&&i < len2; i++) {
  16. //星期一到星期日必须在A~G中间,否则得到结果错误的
  17. if (str1[i] == str2[i] && str1[i] >= 'A'&&str1[i] <= 'G') {
  18. cout << week[str1[i] - 'A']<<" ";//找到第一对就输出并结束查找
  19. break;
  20. }
  21. }
  22. //找时间的时候从第一对结果之后(i++)开始查找
  23. for (i++; i < len1&&i < len2; i++) {
  24. if (str1[i] == str2[i]) {
  25. //0~9表示0点到9点,A~N表示10~23点
  26. if (str1[i] >= '0'&&str1[i] <= '9') {
  27. printf("%02d", str1[i] - '0');
  28. break;
  29. }
  30. else if (str1[i]>='A'&&str1[i]<='N') {
  31. printf("%02d", str1[i] - 'A' + 10);
  32. break;
  33. }
  34. }
  35. }
  36. //查找str3和str4字符串中A~Z和a~z的字符串对
  37. for (i = 0; i < len3&&i < len4; i++) {
  38. if (str3[i] == str4[i]) {
  39. if ((str3[i] >= 'A'&&str3[i] <= 'Z') || (str3[i] >= 'a'&&str3[i] <= 'z')) {
  40. printf(":%02d\n", i);
  41. }
  42. }
  43. }
  44. system("pause");
  45. return 0;
  46. }
  1.  

PAT B1014 福尔摩斯约会的更多相关文章

  1. 【PAT】B1014 福尔摩斯的约会

    因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四: 第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 ...

  2. PAT B1014/A1061 福尔摩斯的约会(20)

    书中AC代码 #include <cstdio> #include <iostream> #include <cstring> using namespace st ...

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

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

  4. PAT 1014 福尔摩斯的约会

    https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560 大侦探福尔摩斯接到一张奇怪的字条:“我们约会 ...

  5. PAT 1014 福尔摩斯的约会 (20)(代码+思路)

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

  6. PAT——1014. 福尔摩斯的约会

    大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”.大侦探很快就明白了,字条 ...

  7. 【算法笔记】B1014 福尔摩斯的约会

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

  8. 牛客网PAT练兵场-福尔摩斯的约会

    题目地址:https://www.nowcoder.com/pat/6/problem/4040 题意:模拟题,循环找相同的字母,但是注意题目的坑 /** * *作者:Ycute *时间:2019-1 ...

  9. B1014. 福尔摩斯的约会

    14/20 #include<bits/stdc++.h> using namespace std; map<char,string> day; int main(){ day ...

随机推荐

  1. tp5 ajax批量删除(自写)

    html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  2. mybatis 日志实现 学习总结03

    日志 1.为什么要使用日志 使用日志能对项目: 调试:日志便于记录程序在之前的运行结果 错误定位 数据分析:日志中蕴含了大量的用户数据,包括点击行为,兴趣偏好等,对公司下一步的战略方向有一定指引作用. ...

  3. java方法学习

    java方法学习 方法概念 什么是方法 方法就是完成某些事情的过程,如:实现两个数相加,用方法add(数值1,数值2). 1.System.out.print(),System是系统的一个类,out是 ...

  4. Java安装与卸载

    Java安装与卸载 Java优势 面向对象 可移植性,跨平台易用 高性能 为分布式设计 具有动态性 支持多线程 安全性 健壮性,运行前会对内存进行检查 Java三大版本 JavaSE:标准版 Java ...

  5. SpringBoot 中实现跨域的几种方式

    一.为什么会出现跨域问题 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响. ...

  6. Redis常见延迟问题定位与分析

    Redis作为内存数据库,拥有非常高的性能,单个实例的QPS能够达到10W左右.但我们在使用Redis时,经常时不时会出现访问延迟很大的情况,如果你不知道Redis的内部实现原理,在排查问题时就会一头 ...

  7. 开源版-阿里云人脸搜索M:N,人脸比对1:1

    一.人脸搜索概要 本项目是阿里云视觉智能开放平台的人脸1:N的开源替代,项目中使用的模型均为开源模型,项目支持milvus和proxima向量存储库,并具有较高的自定义能力. 项目使用纯Java开发, ...

  8. go语言学习入门篇 3-- 程序执行流程

    先看下 Go 语言的程序结构: package main // 当前包名 import "fmt" // 导入程序中使用到的包 // 初始化函数 func init() { // ...

  9. 一种基于USB转串口的设备如何赋予权限

    1. 利用open打开USB转串口的设备遇到打开异常. 若用vs调试代码,则需要usermod 对应归到watson组下,因为watson这个是vs ssh连接虚拟机的用户名,若用root则无法使用改 ...

  10. 通过Kuberneters Goat学习K8S安全(上)

    实验环境:https://katacoda.com/madhuakula/scenarios/kubernetes-goat 0x1.敏感信息泄露利用 第一关是代码泄露利用,打开网站后显示: 告诉我们 ...