题目描述

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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.第一二个字符比较:判断第一个字母是否相同
2.第一二个字符比较:判断第二个字符是否相同,这个是在第一个大写字母相同的基础上,向后查找有没有相同字符,取得的字符如果是数字,那么直接将其输出,如果是字母,则要减去相应的ASCII值
3.第三四个字符比较,判断第一对相同的英文字母,取其下标
代码:
 import java.util.Scanner;

 public class Main{

     public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String []arr=new String[4];
char day = 0;
int dayShu=0;
char hour = 0;
int hourShu=0;
int fen = 0;
for(int i=0;i<4;i++) {
String str=sc.nextLine();
if(str.length()<=60&&str.length()>0) {
/*将4个字符串存入一个数组中*/
arr[i]=str;
}else {
break;
}
}
/*
* 1.比较第一个和第二个字符串,判断第一个大写字母
* 2.比较第一个和第二个字符串,判断第二个大写字母
* 3.比较第三个和第四个字符串,判断第一个英文字母(不判断大小写)
* 4.输出的规范为THU 14:04,如果分小于十,那么要补0
*/
int count=0;
//1,2
for(int i=0;i<arr[0].length();i++) {
for(int j=0;j<arr[1].length();j++) {
//判断是否为大写字母
//Character.isLowerCase(char c)判断字母小写,
//Character.isUpperCase(char c)判断字母大写,
if(Character.isUpperCase(arr[0].charAt(i))&&Character.isUpperCase(arr[1].charAt(j))) {
//如果count==0,那么是第一次判断
//如果count==1,那么是第二次判断
//如果count==2,那么是第三次判断
if(count==0) {
if(arr[0].charAt(i)==arr[1].charAt(j)) {
count++;
day=arr[1].charAt(j);
dayShu=j;
break;
} }
}else {
continue;
}
}
}
//2.
for(int i=dayShu+1;i<arr[0].length();i++) {
if((arr[0].charAt(i))==(arr[1].charAt(i))) {
hour=arr[1].charAt(i); break;
}
}
//3.
for(int i=0;i<arr[2].length();i++) {
if(Character.isLetter(arr[2].charAt(i))&&Character.isLetter(arr[3].charAt(i))) {
if((arr[2].charAt(i))==(arr[3].charAt(i))) {
fen=i;
break;
}
else {
continue;
}
} } //
switch(day) {
case 65:
System.out.print("MON"+" ");
break;
case 66:
System.out.print("TUE"+" ");
break;
case 67:
System.out.print("WED"+" ");
break;
case 68:
System.out.print("THU"+" ");
break;
case 69:
System.out.print("FRI"+" ");
break;
case 70:
System.out.print("SAT"+" ");
break;
case 71:
System.out.print("SUN"+" ");
break;
default:
break;
} if(47<hour&&hour<58) {
System.out.print("0"+hour+":");
}else if(64<hour&&hour<79){
System.out.print(hour-55+":");
} if(fen<10) {
System.out.println("0"+fen);
}else {
System.out.println(fen);
}
}
}

如果有简单的方法,可以在下面评论,互相进步,感谢批评指正!

PAT乙级(Basic Level)真题,福尔摩斯的约会的更多相关文章

  1. C#版 - PAT乙级(Basic Level)真题 之 1021.个位数统计 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - P ...

  2. C#版 - PAT乙级(Basic Level)真题 之 1024.科学计数法转化为普通数字 - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. PAT Bas ...

  3. 牛客网PAT乙级(Basic Level)真题-组个最小数 (20)

    组个最小数 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 给定数字0-9各若干个.你可以以任意顺序排 ...

  4. 牛客网PAT乙级(Basic Level)真题-数字分类 (20)

    题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4 ...

  5. 牛客网PAT乙级(Basic Level)真题-数素数 (20)

    题目描述 令Pi表示第i个素数.现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数. 输入描述: 输入在一行中给出M和N,其间以空格分隔. 输出描述: 输出从PM到 ...

  6. PAT乙级(Basic Level)练习题-NowCoder数列总结

    题目描述 NowCoder最近在研究一个数列: F(0) = 7 F(1) = 11 F(n) = F(n-1) + F(n-2) (n≥2) 他称之为NowCoder数列.请你帮忙确认一下数列中第n ...

  7. 牛客网编程练习之PAT乙级(Basic Level):1033 害死人不偿命的(3n+1)猜想

    3n+1水题.... AC代码: import java.util.Scanner; /** * @author CC11001100 */ public class Main { public st ...

  8. 牛客网编程练习之PAT乙级(Basic Level):1034 写出这个数

    AC代码: import java.util.*; /** * @author CC11001100 */ public class Main { public static void main(St ...

  9. 牛客网编程练习之PAT乙级(Basic Level):1032 选大王

    典型的约瑟夫环问题 AC代码: import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @ ...

随机推荐

  1. jenkins安装自动部署

    1.1简介: 开源项目,一个可扩展的持续集成引擎.提供了一种易于使用的持续集成系统,能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性.还做到持 ...

  2. ubuntu手动升级系统

    之前自己安装的是ubuntu14.04,现在需要升级到16.04,于是上网搜索了一下升级步骤以及相关命令,将这些整理出来分享给大家,希望能够给大家提供帮助. 1.更新资源: sudo apt-get ...

  3. 洛谷$P1712\ [NOI2016]$区间 线段树

    正解:线段树 解题报告: 传送门$QwQ$ $umm$很久以前做的了来补个题解$QwQ$ 考虑给每个区间按权值($r-l$从大往小排序,依次加入,然后考虑如果有一个位置被覆盖次数等于$m$了就可以把权 ...

  4. C#泛型(Generic)

    一.什么是泛型 泛型(Generic)是C#语言2.0.通用语言运行时(CLR)2.0..NET Framework2.0推出来的新特性. 泛型为.NET框架引入类型参数(Type Parameter ...

  5. 如何使用CSS3中的结构伪类选择器和伪元素选择器

    结构伪类选择器介绍 结构伪类选择器是用来处理一些特殊的效果. 结构伪类选择器属性说明表 属性 描述 E:first-child 匹配E元素的第一个子元素. E:last-child 匹配E元素的最后一 ...

  6. 从零开始Go语言-GoLand(编译器)-Windows(平台)

    本文章适合那些想入门Go语言,却又不知道如何搭建自己的第一个HelloWorld的同学. 推荐几个Go语言相关学习网站: C语言中文网: http://c.biancheng.net/golang/ ...

  7. [技术翻译]Web网页内容是如何影响电池使用寿命的?

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  8. POJ 1458 Common Subsequence (动态规划)

    题目传送门 POJ 1458 Description A subsequence of a given sequence is the given sequence with some element ...

  9. 升级添加到现有iOS Xcode项目的Flutter

    如果你在2019年8月之前将Flutter添加到现有iOS项目,本文值得你一看. 在2019年7月30日,合并合并请求flutter / flutter#36793之前Flutter 1.8.4-pr ...

  10. [Windows] 系统清理与优化神器Advanced SystemCare 13 PRO非破解附正版激活码

    Advanced SystemCare是一款功能强大的系统清理优化软件,该软件提供的主要功能有:启动项优化.注册表整理和清理.隐私清扫.垃圾文件清理.快捷方式修复.恶意软件清除.网络加速.系统优化.安 ...