首页 > 其他分享 >PAT乙级 —— 1004 福尔摩斯的约会 (20)

PAT乙级 —— 1004 福尔摩斯的约会 (20)

时间:2022-11-22 11:02:15浏览次数:57  
标签:PAT s3 s1 福尔摩斯 && 20 include 约会


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

  • 满分代码
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <map>
#include <string>
using namespace std;

map<char,int> mp;

int main()
{
//24小时打表
for(int i=0;i<10;i++)
mp['0'+i] = i;
for(int i=0;i<14;i++)
mp['A'+i] = 10+i;

//星期打表
string week[7]={"MON","TUE","WED","THU","FRI","SAT","SUN"};

string s1,s2,s3,s4;
cin>>s1>>s2>>s3>>s4;

int p,q,flag;
p=q=flag=0;


while(p<s1.length() && q<s2.length())
{
if(s1[p] == s2[q])
{
//星期
if(flag==0 && s1[p]>='A' && s1[p]<='Z')
cout<<week[s1[p]-'A']<<" ",flag=1;
//小时,个位数要用0填充前缀
else if(flag==1)
{
printf("%02d:",mp[s1[p]]);
break;
}

}
p++,q++;
}

p=q=0;
while(p<s3.length() && q<s4.length())
{
//分钟
if(s3[p]==s4[q] && ((s3[p]>='A' && s3[p]<='Z') || (s3[p]>='a' && s3[p]<='z')))
{
printf("%02d",p);
break;
}
p++,q++;
}

return 0;
}
  • 说明:
  • 打表,复杂的用map,简单的用数组
  • 输出高位占位符​printf("%010d",123456);​​​,输出​​0000123456​​,高位填充0使得长度等于10


标签:PAT,s3,s1,福尔摩斯,&&,20,include,约会
From: https://blog.51cto.com/u_15887260/5877058

相关文章

  • PAT乙级 —— 1003 数素数 (20)
    题目链接:​​数素数(20)​​题目描述令Pi表示第i个素数。现任给两个正整数M<=N<=10000,请输出PM到PN的所有素数。输入描述:输入在一行中给出M和N,其间以空格分隔。输出描......
  • China SAFe Day 2022中国规模化敏捷大会圆满落幕!
    ​​ChinaSAFeDay202211月5日,2022ChinaSAFeDay暨第三届中国规模化敏捷大会在上海圆满落幕。本届大会由Scrum中文网和SAI(ScaledAgileInc.)联合主办,围绕“敏......
  • 【2022.11.21】pytorch的使用相关(五)
    资料来源ShusenTang/Dive-into-DL-PyTorch:本项目将《动手学深度学习》(DiveintoDeepLearning)原书中的MXNet实现改为PyTorch实现。(github.com)代码部分%matplotl......
  • 2022 - 11.22 对象深拷贝
    第一步:获取对象的类型方法exportconstgetObjType=(obj)=>{vartoString=Object.prototype.toString;varmap={'[objectBoolean]':'boolean',......
  • P3178 [HAOI2015]树上操作 的dfs序题解
    操作1:把某个节点x的点权增加a。操作2:把某个节点x为根的子树中所有点的点权都增加a。操作3:询问某个节点x到根的路径中所有点的点权和。//点修改+树修改,(点......
  • 4383 [八省联考 2018] 林克卡特树(WQS 二分+DP)
    P4383[八省联考2018]林克卡特树给定一颗\(n\)个点的树,每条边有边权\(v(|v|\le10^6)\),要求删去其中任意\(k\)条边,使得剩余联通块的直径之和最大。求出这个最大值......
  • 【2022.11.21】PVE创建基于LXC的Docker容器
    CT模板换源cp/usr/share/perl5/PVE/APLInfo.pm/usr/share/perl5/PVE/APLInfo.pm_backsed-i's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/p......
  • ICPC2022-合肥赛区 SZTU_AtDawn队总结
    比赛前一天先简单聊聊热身赛,因为开始思路的局限,最简单的枚举题最后也没写出来,不过写出来了一个分块的数据结构。赛后发现枚举其实很简单的思路,赛时想了些复杂度很怪的东西......
  • 代码随想录day6---LeetCode 242.有效的字母异位词 & 349. 两个数组的交集&202. 快乐数
    LeetCode242.有效的字母异位词给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母......
  • GL-OFFICE DRESS CODE-20221121
    Today'sTopicOFFICEDRESSCODEManycompanieshavea'dresscode'thatexplainswhatstaffcanandcan'twearatwork.Doyouthinkthesepoliciesarefair,......