题目描述

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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. GNE: 4行代码实现新闻类网站通用爬虫

    GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的 HTML, 输出正文内容.标题.作者.发布时间.正文中的图片地址和正文所在的标签源代码.GNE在提 ...

  2. FlyweightPattern(享元模式)-----Java/.Net

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能.这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式

  3. Frangi形态学滤波详解

    利用Hessian矩阵的滤波函数Frangi,网上的文章只是把论文中的公式贴出来了. 我感觉分析下滤波函数是怎么起作用,还是挺有意思的一件事情. Frangi滤波方法的论文是: Frangi A F, ...

  4. 开源项目SMSS开发指南(二)——基于libevent的线程池

    libevent是一套轻量级的网络库,基于事件驱动开发.能够实现多线程的多路复用和注册事件响应.本文将介绍libevent的基本功能以及如何利用libevent开发一个线程池. 一. 使用指南 监听服 ...

  5. swiper如何禁止用户滑动

    禁止用户滑动,只需要在最外层添加class  “swiper-no-swiping” <div class="swiper-container swiper-no-swiping&qu ...

  6. Numpy的介绍与基本使用方法

    1.什么是Numpy numpy官方文档:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 NumPy是一个功能强大的Pytho ...

  7. goland编辑器永久激活

    1 下载goland破解文件补丁 链接: https://pan.baidu.com/s/1i3dFAwscXPzKV-1imvgkdA 提取码: furt 2 打开goland的安装文件,将下载好的 ...

  8. c++ 快读快输模板

    快读 inline int read() { ; ; char ch=getchar(); ; ch=getchar();} )+(X<<)+ch-'; ch=getchar();} if ...

  9. Java框架之Spring02-AOP-动态代理-AspectJ-JdbcTemplate-事务

    AOP 动态代理 代理设计模式的原理:使用一个代理将原本对象包装起来,然后用该代理对象”取代”原始对象.任何对原始对象的调用都要通过代理.代理对象决定是否以及何时将方法调用转到原始对象上. 代理模式的 ...

  10. 网络流 - 最大流构图入门 bzoj 1305

    一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会“单向喜欢”).每个男孩 ...