PAT 乙级 1014 福尔摩斯的约会 Java解决

PAT 乙级 Java 合集 PAT乙级合集 阅读详情

写在最前:欢迎批评,欢迎任意地方的指正,用你们的优秀的java代码砸死我吧!!

问题——————

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

解题思路:

读题很重要,这道题需要仔细地读两三遍题才能下手 ,起初看到这个题觉得算是一个比较简单的题,只要把读入的字符串变成字符数组挨个比较就可以,但是实际提交后发现有不少小坑,并且还极难排查,这也是这么一道20分得题只有0.16的提交通过率的原因(全部95道最低)。他每一句话都有隐含的限定条件,第一次并不溶于读出来,比如我第一次读题的想法:第一对相同的大写英文字母,这里明显看到限制是大写英文字母,于是比对的时候就只加了大写英文字母的限定,第二个是第二对相同的字符,于是乎没有加什么限定,觉得他任意字符就可以,然后就是相同的英文字母,也没有加更多的限制;读到这里,后面又看到保证每个测试存在唯一解,就更不加多想,直接下手写第一次写完只有一两个检查点通过吧(记不太清了),于是开始改,逐渐发现了这些坑:比如两个字符相同的前提是这两个字符是有效字符串,什么是有效字符串呢?第一个表示星期,所以只有第一组相等的ABCDEFG才算是有效的,如果他给出的字符串的第一组相等的不是这骑个字母,那么直接后延,这里如果直接读取第一个相等的字符一定会出错,第二个字符也是,需要在"0123456789ABCDEFGHIJKLMN"中的任意字符才可以,并且不能是小写,这些条件都是题中隐含的条件,没有看出来只能怪自己读题不仔细。最后要注意的小点就是时间输出的时候注意用HH:MM的格式输出,补零很重要。如果以上的小坑都注意到的话就没有什么能挡住你的了,直接按照题目添加限定条件来计算就好了。

package not.die.in.here;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

public class _1014_HolmesDate {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		char[] a = bf.readLine().toCharArray();//存放四个字符串,读取的时候就转化为字符数组存储
		char[] b = bf.readLine().toCharArray();
		char[] c = bf.readLine().toCharArray();
		char[] d = bf.readLine().toCharArray();
		StringBuilder sb = new StringBuilder("");//存放结果的变量
		String hour = "0123456789ABCDEFGHIJKLMN";//小时的字符
		int count = 0;//计数
		for(int i = 0;i<(a.length<b.length?a.length:b.length);i++) {
			if(count==0) {//第一个
				if(a[i]>='A' && a[i]<='G' &&a[i]==b[i]) {//符合A到G并且相等
					sb.append(a[i]+ " ");
					count++;
				}
			}else
			if(count == 1) {//第二个
				if(hour.indexOf(a[i])!=-1&&a[i]==b[i]) {//符合有效字符并且相等
					sb.append(a[i]+" ");
					break;
				}
			}
		}
		for(int i = 0;i<(c.length<d.length?c.length:d.length);i++) {//循环两个字符串,循环次数为较小的数组长度
			if(((c[i]>64 && c[i]<91)||(c[i]>96 && c[i]<123))&&c[i]==d[i]) {//是字母并且相等
					sb.append(i);
					break;
			}
		}
		Map<String,String> week = new HashMap<String,String>();//存放周的map
		week.put("A", "MON ");
		week.put("B", "TUE ");
		week.put("C", "WED ");
		week.put("D", "THU ");
		week.put("E", "FRI ");
		week.put("F", "SAT ");
		week.put("G", "SUN ");
		
		String[] buf = sb.toString().split(" ");
		System.out.println(week.get(buf[0])//根据答案输出周几
							+String.format("%02d", hour.indexOf(buf[1]))+":"//格式化输出时间
							+String.format("%02d", Integer.parseInt(buf[2])));
	}
}

 

提交截图:

 

PAT乙级【Java题解合集】 学习完本专栏后,leetcode的简单题应该是没啥问题了,可以去做甲级的题目或者leetcode中等以上难度的题目继续修炼,后续博主会整理并更新算法修炼专栏,欢迎您的订阅!👉🏻算法修炼专栏👈🏻。 阅读详情

相关推荐

PAT 乙级真题题解 java实现

虽然这次PAT考试的成绩并不算理想,但还是有了很多收获,特别是认识了一些很优秀的人以及他们平时怎么学习算法。 我参加的2019年冬季PAT乙级考试,这个时间PAT官网上的乙级真题有95道,我是使用java来做的(推荐使用c语言)。大部分题都是通过的,部分题目超出时间限制, 还有一部分只通过了部分用例。 以下是题目清单及我的通过情况: GitHub仓库 完全正确 1001 害死人不偿命的(3n...

wangbo818的博客 1794

pat java 超时_用java写pat算法题,超时怎么办?

该楼层疑似违规已被系统折叠隐藏此楼查看此楼顺便大佬帮看下代码,是不是代码写的太笨拙了,跟语言没关系import java.util.Scanner;import java.util.Queue;import java.util.LinkedList;public class Main{private static int[][][] maze;private static int[] dx={1...

weixin_33519829的博客 1748

PAT乙级-题解(Java)

我的题解放在github仓库了(喜欢的话,记得star哈) 下面是汇总导航,如果你只想看其中某个题的话,点击题解直达。 乙级的题目每个题都是一个有趣的故事,引导你去思考解决问题的能力,不是单纯的刷题。然后只涉及数组,循环,判断,字符串等基础编程语言语法的知识,不会设计复杂的算法与数据结构。 一开始可能会有点吃力,正常,但是如果你全部刷完,leetcode上部分简单题对你来说是小case了。 甲级主要是算法与数据结构,乙级刷完了,也可刷甲级, 甲级的题目特别好,测试用例丰富 如果是急需找工作,面试的话刷lee

weixin_45685225的博客 1898

PAT B1014 福尔摩斯的约会 (20point(s))

大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代...

qq_42347617的博客 723

【Java】PAT乙级真题全记录(一)1到20题

自己报的名,含着泪也要考完试TUT用java考PAT都埋了哪些雷

qq_40624532的博客 1675

告别手动!用Python+CATIA V5/V6自动生成三视图和标题栏(附完整代码)

本文详细介绍了如何利用Python和CATIA V5/V6实现工程图自动生成,包括三视图布局和标题栏填写。通过COM接口调用和智能算法,系统能自适应不同尺寸模型,大幅提升设计效率。附完整代码和部署方案,帮助团队实现从手动到自动化的转变。

weixin_42699679的博客 354

1014 福尔摩斯的约会java

大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;在一行中输出约会的时间,格式为 DAY HH:MM,其中 DAY 是某星期的 3 字符缩写,即 MON 表示星期一,TUE 表示星期二,WED 表示星期三,THU 表示星期四,FRI 表示星期五,SAT 表示星期六,SUN 表示星期日。输入在 4 行中分别给出 4 个非空、不包含空格、且长度不超过 60 的字符串。

AIsmy的博客 233

scanpy单细胞转录组python教程(四):单样本数据分析之降维聚类及细胞注释

本文介绍了使用scanpy进行单细胞转录组分析的降维聚类和细胞注释流程。首先通过PCA降维并可视化主成分贡献,然后使用不同分辨率参数(0.2-1.0)进行Leiden聚类。通过Wilcoxon检验鉴定marker基因,并基于经典marker基因手动注释细胞类型。最后对低质量细胞群进行过滤,并重新计算邻居图和UMAP可视化。流程中包含PCA方差分析、多分辨率聚类比较、marker基因筛选和基于UMAP的细胞类型可视化等关键步骤,为后续分析奠定基础。

qq_42090739的博客 943

PAT乙级Java实现_1014 福尔摩斯的约会 (20) _附详细解题注释_14

1014 福尔摩斯的约会 (20)(20 分)大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&amp;hgsfdk d&amp;Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相...

coder__666的博客 1200

计算机补码两位乘法移位补0还是1,补码两位乘.doc

补码两位乘沈阳航空航天大学课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:COP2000实现补码两位乘法院(系):计算机学院专 业:计算机科学与技术(嵌入式系统方向)班 级学 号:2009040101181姓 名:张驰指导教师:杨华完成日期:2012年1月14日目 录第1章 总体设计方案11.1设计原理11.2设计思路11.3设计环境2第2章...

weixin_34471838的博客 968

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

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头

柳婼 の blog 990

从公式到实践:用SPSS解锁香农多样性指数的生态洞察

本文详细介绍了如何利用SPSS软件计算和应用香农多样性指数进行生态研究。从基础公式解析到SPSS实战操作,再到生态决策支持,全面展示了该指数在物种丰富度和均匀度量化中的价值。文章特别强调了SPSS操作中的关键技巧和常见误区,为生态研究者提供了一套完整的分析解决方案。

weixin_30832143的博客 465

PAT乙级——Java合集

简介添加链接描述   刷PAT完全是闲的时候打发时间的,感觉还蛮有意思,有空了就写几道,基本都是Java实现的,目前为止才刷了五十多道题目,等刷完继续LeetCode,这里也会持续更新的。 合集 PAT 1001 害死人不偿命的(3n+1)猜想(15分) PAT 1002 写出这个数 (20分)(Java) PAT 1003 我要通过! (20分)(Java) PAT 1004 成绩排名 (20 分)(Java实现) PAT 1005 继续(3n+1)猜想 (25分)(Java)

HenryLei的博客 6万+

图像相似度的评价指标 : FID(Fréchet Inception Distance)

FID(Fréchet Inception Distance) 是用来计算真实图像与生成图像的特征向量间距离的一种度量。如果FID值越小,则相似程度越高。最好情况即是FID=0,两个图像相同。 实际计算: 参考链接:https://machinelearningmastery.com/how-to-implement-the-frechet-inception-distance-fid-from-scratch/ # example of calculating the frechet inceptio

weixin_43723625的博客 1万+

HI3403烧录全流程:从ToolPlatform安装到eMMC配置避坑指南

本文详细介绍了海思HI3403芯片的完整烧录流程,涵盖从ToolPlatform工具安装、驱动配置到eMMC分区策略的实战指南。文章深入解析了BurnTool工具的使用方法、关键配置项,并提供了烧录过程中的常见问题排查与解决方案,旨在帮助开发者高效、稳定地完成HI3403嵌入式系统的部署。

weixin_29279101的博客 333

【JAVA】PAT 乙级 1014 福尔摩斯的约会

【JAVA】PAT 乙级 1014 福尔摩斯的约会 题目链接 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星...

TAL_DARIM的博客 280

ESP32 物联网宠物喂食器:实现远程智能投喂的完整方案

本项目基于 ESP32 实现了智能宠物喂食器的核心功能,硬件结构简单、成本较低,软件支持远程控制和状态监测。添加摄像头:通过 ESP32-CAM 模块实时观察宠物进食情况。APP 集成:开发专属手机 APP,支持定时设置、报警推送、喂食记录查询。语音控制:结合 Alexa 或小爱同学,实现语音指令喂食。太阳能供电:户外使用时,通过太阳能板为设备供电,节能环保。

weixin_42300449的博客 1278

PAT乙级 1014 福尔摩斯的约会 (JAVA)

1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&amp;amp;hgsfdk d&amp;amp;Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的...

涩。 222

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

B1014-PAT乙级JAVA题解 福尔摩斯的约会

大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母A到N表示);后面两字符串第 1 对相同的英文字母s出现在第 4 个位置(从 0 开始计数)上,代表第 4 分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。

qq_49695680的博客 294

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PAT 乙级 1014 福尔摩斯的约会(JAVA)

大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代...

qq_37774375的博客 199

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

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

PAT乙级:1014 福尔摩斯的约会 (20 分)Java 作者 CHEN, Yue 单位 浙江大学 代码长度限制 16 KB 时间限制 200 ms 内存限制 64 MB 题目描述: 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个

lflcodeplus的博客 888

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

题目描述: 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个...

闭关修炼 155

板栗说算法 之 PAT 乙级 1014 福尔摩斯的约会(全方面解析)

一、题目 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个...

爱吃的栗子‘s 博客 356

pat乙级 1014 java_pat乙级1014 福尔摩斯的约会

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsbs&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的...

weixin_29564301的博客 170
上一篇: PAT 乙级 1013 数素数 Java解决
下一篇: PAT 乙级 1015 德才论 Java解决(未AC)
TimothyHTY
博客等级 码龄9年 16粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值