Java 1014 福尔摩斯的约会

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

结尾无空行

Java代码实现:

=========

一开始的思路很固化,暴力突破,代码臃肿冗长,虽然输入题目给出的例子输出结果一样,但提交没分:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String str1 = new String(sc.next());

String str2 = new String(sc.next());

String s1 = str1 + str2;

char[] c1 = new char[s1.length()];

String str3 = new String(sc.next());

String str4 = new String(sc.next());

String s2 = str3 + str4;

char[] c2 = new char[s2.length()];

int Day = 0;

int Hour = 0;

int num1 = 0;

int num2 = 0;

for (int i = 0; i < s1.length(); i++) {

c1[i] = s1.charAt(i);

}

for (int i = 0; i < s2.length(); i++) {

c2[i] = s2.charAt(i);

}

for (int i = 0; i < s1.length(); i++) {

if (c1[i] >= ‘A’ && c1[i] <= ‘Z’) {

for (int j = i + 1; j < s1.length(); j++) {

if (c1[j] == c1[i]) {

num1++;

if (num1 == 1) {

Day = c1[i] - ‘A’ + 1;

break;

}

if (num1 == 2) {

Hour = c1[i] - ‘A’ + 1;

break;

}

}

}

}

if (num1 == 2)

break;

}

for (int i = 0; i < s2.length(); i++) {

if (c2[i] >= ‘A’ && c1[i] <= ‘z’) {

for (int j = i + 1; j < s2.length(); j++) {

if (c2[j] == c2[i]) {

num2 = j;

break;

}

}

}

if (num2 != 0)

break;

}

switch (Day) {

case 1:

System.out.print("MON ");

break;

case 2:

System.out.print("TUS ");

break;

case 3:

System.out.print("WED ");

break;

case 4:

System.out.print("THU ");

break;

case 5:

System.out.print("FRI ");

break;

case 6:

System.out.print("SAT ");

break;

case 7:

System.out.print("SUN ");

break;

}

switch (Hour) {

case 1:

System.out.print(“10:”);

break;

case 2:

System.out.print(“11:”);

break;

case 3:

System.out.print(“12:”);

break;

case 4:

System.out.print(“13:”);

break;

case 5:

System.out.print(“14:”);

break;

case 6:

System.out.print(“15:”);

break;

case 7:

System.out.print(“16:”);

break;

case 8:

System.out.print(“17:”);

break;

case 9:

System.out.print(“18:”);

break;

case 10:

System.out.print(“19:”);

break;

case 11:

System.out.print(“20:”);

break;

case 12:

System.out.print(“21:”);

break;

case 13:

System.out.print(“22:”);

break;

case 14:

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
)]

[外链图片转存中…(img-NTPCtUiM-1715698557999)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值