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

时间:2022-09-04 08:52:19

1014. 福尔摩斯的约会 (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

首先理解题意:
  1.前两个字符串包含星期和小时两个信息,首先,两个字符串在同一位置有相同的大写字母代表了星期的信息,且大写字母在A-G之间;
  2.在表示星期的大写字母的后面,再找相同的字符(包含大写字母A-N,和数字0-9),,这个字符代表了小时的信息,例如:
YN6aBcmZD8oNp6
Yh6aBdmZg8lN
    1)先找相同的大写字母,得到B,表示星期二,其中,第一个位置的Y虽然相同,但不在A-G之间,大写字母B之前的6和a也不满足);
    2)再在B之后找相同的字符,得到8,表示08点,其中m虽然相同,但不是大写字母,大写字母Z不在A-N之间,在8后面的N虽然也满足条件,但已经确定了时间为08点,则N应该舍弃
      注意在时间小于10(0-9)的时候,打印时间时前面需补0
  3.在后两个字符串中确定了分钟的信息,需要找到相同的英文字母所在的位置(大写和小写字母均可),同样只取第一个满足条件的字符所在的位置,打印时不足两位的同样需要补0 程序说明:
  1.确定需要比较的两个字符串中较短的字符串长度,再进行比较;
  2.判断一个字符ch是不是大写字母的三种方法:
isupper(ch);//是大写字母返回非零值(true),否则返回零(false)
if(ch>='A'&&ch<='Z');
if(ch>=65&&ch<=90);//65和90分别为A和Z对应的ASCII码值
  3.判断一个字符ch是不是小写字母的三种方法:
islower(ch);//是小写字母返回非零值(true),否则返回零(false)
if(ch>='a'&&ch<='z')
if(ch>=97&&ch<=122)//97和122分别为a和z对应的ASCII码值
  4.判断是否是字母用 isalpha(ch),若是,返回非零值(true),否则返回零(false)
   判断是否是数字用 isdigit(num),若是,返回非零值(true),否则返回零(false)
**注意:上面提到的 isupper()、islower()、isdigit()、isalpha()均为宏定义,非真正的函数
  5.在多余位置上补0的方法:
cout<<setw(n)<<setfill('0')<<i;
    setw(n)表示设置位宽为 n,如果不进行设置,系统默认左对齐输出,设置后为右对齐,空出的位置以空格填充
    setfill('0')表示以单个字符'0'填充空余位置,注意:setfill()中参数只能为单个字符,setfill(0)或者 setfill("0")均报错
    i 为输出项 C++代码如下:
 #include <bits/stdc++.h>
using namespace std;
int min(int a,int b){
if(a<b) return a;
else return b;
}
int main() {
char str[][];
int count=;
string week[]={"MON ","TUE ","WED ","THU ","FRI ","SAT ","SUN "};
cin>>str[]>>str[]>>str[]>>str[];
int len0,len2;
len0=min(strlen(str[]),strlen(str[]));
len2=min(strlen(str[]),strlen(str[]));
for(int i=;i<len0;i++){
if(str[][i]==str[][i]){
if(count==){
if(str[][i]>='A'&&str[][i]<='G'){
cout<<week[(str[][i]-'A')];
count++;
}
}
else if(count==){
if(str[][i]>='A'&&str[][i]<='N'){
cout<<(+(str[][i]-'A'))<<':';
break;
}
else if(isdigit(str[][i])){
cout<<setw()<<setfill('')<<str[][i]<<':';
break;
}
}
}
}
for(int i=;i<len2;i++){
if(str[][i]==str[][i]){
if(isalpha(str[][i])){
cout<<setw()<<setfill('')<<i;
break;
}
}
}
system("pause");
return ;
}

【PAT】1014. 福尔摩斯的约会 (20)的更多相关文章

  1. PAT 1014 福尔摩斯的约会 &lpar;20&rpar;(代码&plus;思路)

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

  2. PAT 1014&period; 福尔摩斯的约会 &lpar;20&rpar;

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

  3. PAT乙级:1014 福尔摩斯的约会 &lpar;20分&rpar;

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

  4. PAT乙级 1014&period; 福尔摩斯的约会 &lpar;20&rpar;

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

  5. 浙江大学PAT上机题解析之1014&period; 福尔摩斯的约会 &lpar;20&rpar;

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

  6. PAT 乙级 1014 福尔摩斯的约会 &lpar;20&rpar; C&plus;&plus;版

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

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

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

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

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

  9. PAT-乙级-1014&period; 福尔摩斯的约会 &lpar;20&rpar;

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

随机推荐

  1. 【poj2409】 Let it Bead

    http://poj.org/problem?id=2409 (题目链接) 题意 一个n个珠子的项链,每个珠子可以被染成t种颜色.项链可以翻转和旋转,问不同的染色方案数. Solution Pólya ...

  2. nodejs review-03

    39 Serve different file types with our server 处理文件类型 function content_type(filename) { var ext = pat ...

  3. cdnbest节点安装后连不上主控常见问题

    1. 查看节点程序是否启动 ps -aux |grep kangle 2. 如果节点程序都有启动,可查看日志,节点连接的是不是你帐号的uid帐号或者是否有其他报错信息 tail -f /var/log ...

  4. 1029&period; Median &lpar;25&rpar;

    分析: 考察归并排序,用简单的快排会超时. #include <iostream> #include <stdio.h> #include <algorithm> ...

  5. C&num;实现MySQL数据库中的blob数据存储

    在MySQL数据库中,有一种blob数据类型,用来存储文件.C#编程语言操作MySQL数据库需要使用MySQL官方组件MySQL.Data.dll. Mysql.Data.dll(6.9.6)组件下载 ...

  6. POJ 2524 :Ubiquitous Religions

    id=2524">Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 231 ...

  7. 原生JavaScript之&OpenCurlyDoubleQuote;淘宝轮播图”

    轮播图是我们学习原生js的必经之路 它包含很多基本知识的运用,像this的使用,DOM的操作,还有setInterval的使用和清除,浮动与定位等等,很好的考察了我们的基础知识牢不牢固, 话不多说,直 ...

  8. java源码剖析&colon; 对象内存布局、JVM锁以及优化

    一.目录 1.启蒙知识预热:CAS原理+JVM对象头内存存储结构 2.JVM中锁优化:锁粗化.锁消除.偏向锁.轻量级锁.自旋锁. 3.总结:偏向锁.轻量级锁,重量级锁的优缺点. 二.启蒙知识预热 开启 ...

  9. h5页面 video暂停播放 视频控件 以及当前页面只有一个可以播放效果

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  10. C语言&num;和&num;&num;操作符使用方法

    1.#操作符              1:#操作符用于预处理阶段,将宏参数转换为字符串,只有宏定义中使用(#define) 使用方法: #define  STRING(x)   #x printf( ...