题目简介

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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;
}

最新文章

  1. c++ 11 sleep()
  2. launch文件
  3. cocos2dx 帧动画的两种创建方式
  4. FTP命令详解
  5. python中使用list作为默认参数且调用时不给其赋值的问题
  6. 无法修改系统Host的解决办法
  7. struts的ognl.NoConversionPossible错误
  8. ios 相机调用之读取相册
  9. windows安装weblogic和域的建立
  10. vuejs2.0与1.x版本中怎样使用js实时访问input的值的变化
  11. 【NOIP2018 Day1】题解
  12. python基础教程(第二版)
  13. Expected one result (or null) to be returned by selectOne(), but found: 3
  14. Controller:EOS区块链核心控制器
  15. 关于&lt;T&gt; T[] toArray(T[] a) 方法
  16. ntpd修改版本号教程
  17. Vue.js 2.0生命周期
  18. 使用STM32CubeMX生成RTC工程[秒中断]
  19. CentOS安装SVN客户端(rpm)
  20. HDU 4004 The Frog&#39;s Games(二分答案)

热门文章

  1. PAT-1043(Is It a Binary Search Tree)JAVA实现
  2. Bullet碰撞检测
  3. NIO三大组件之Buffer
  4. key解析
  5. 在go中通过cmd调用python命令行参数量级过大问题解决
  6. jQuery学习笔记(1) 初识jQuery
  7. Android Studio 中的 button 无法使用 background 更改背景颜色
  8. springboot+druid报错log4j:WARN No appenders could be found for logger (druid.sql.Connection). log4j:WARN Please initialize the log4j system properly.
  9. Python - 关于类(self/cls) 以及 多进程通讯的思考
  10. Ansible 教程