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 福尔摩斯的约会 (20)(代码+思路)

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

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

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

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

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

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

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

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

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

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

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

  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. 【乱搞】【CF1095E】 Almost Regular Bracket Sequence

    Description 给定一个长度为 \(n\) 的小括号序列,求有多少个位置满足将这个位置的括号方向反过来后使得新序列是一个合法的括号序列.即在任意一个位置前缀左括号的个数不少于前缀右括号的个数, ...

  2. 洛谷P1062 数列

    题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是 ...

  3. mac和linux下sed使用的不同

    http://note.youdao.com/noteshare?id=84a6a0eb3e3f1698c9de4f48db24226e

  4. 009.C++ const使用

    1.引例 class complex { public: complex(, ) : re (r), im (i) {} complex& operator += (const complex ...

  5. Qt undefined reference to ***

    错因:某个类声明了一个函数但是没有定义就直接使用.

  6. laravel中form表单,ajax传值没反应

    laravel中form表单,ajax传值没反应时,可能是令牌有问题. form中添加: {{csrf_token()}} ajax中添加: data: {'page': page, '_token' ...

  7. wampserver 虚拟主机

    转载:http://blog.csdn.net/knight_quan/article/details/51830683 1.背景: 在进行网站开发的时候,通常需要以http://localhost或 ...

  8. 51nod 1073 约瑟夫环

    题目链接 先说一下什么是约瑟夫环,转自:传送门 关于约瑟夫环问题,无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大( ...

  9. 搭建cdh单机版版本的hive所遇到的问题总汇

    今天按照网上教程搭建了下 cdh 单机版的 hive  将相关配置记录下来 以便以后方便翻阅 版本 hive-0.13.1-cdh5.3.6.tar.gz 1. 直接解压 然后将 mysql驱动包 拷 ...

  10. CodeForces 990B

    You have a Petri dish with bacteria and you are preparing to dive into the harsh micro-world. But, u ...