题目描述

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

输入描述:

  1. 输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。

输出描述:

  1. 在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期
    四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。

输入例子:

  1. 3485djDkxh4hhGE
    2984akDfkkkkggEdsb
    s&hgsfdk
    d&Hyscvnm

输出例子:THU 14:04

  1. 思路:
    1.第一二个字符比较:判断第一个字母是否相同
    2.第一二个字符比较:判断第二个字符是否相同,这个是在第一个大写字母相同的基础上,向后查找有没有相同字符,取得的字符如果是数字,那么直接将其输出,如果是字母,则要减去相应的ASCII
    3.第三四个字符比较,判断第一对相同的英文字母,取其下标
    代码:
  1. import java.util.Scanner;
  2.  
  3. public class Main{
  4.  
  5. public static void main(String[] args) {
  6. Scanner sc=new Scanner(System.in);
  7. String []arr=new String[4];
  8. char day = 0;
  9. int dayShu=0;
  10. char hour = 0;
  11. int hourShu=0;
  12. int fen = 0;
  13. for(int i=0;i<4;i++) {
  14. String str=sc.nextLine();
  15. if(str.length()<=60&&str.length()>0) {
  16. /*将4个字符串存入一个数组中*/
  17. arr[i]=str;
  18. }else {
  19. break;
  20. }
  21. }
  22. /*
  23. * 1.比较第一个和第二个字符串,判断第一个大写字母
  24. * 2.比较第一个和第二个字符串,判断第二个大写字母
  25. * 3.比较第三个和第四个字符串,判断第一个英文字母(不判断大小写)
  26. * 4.输出的规范为THU 14:04,如果分小于十,那么要补0
  27. */
  28. int count=0;
  29. //1,2
  30. for(int i=0;i<arr[0].length();i++) {
  31. for(int j=0;j<arr[1].length();j++) {
  32. //判断是否为大写字母
  33. //Character.isLowerCase(char c)判断字母小写,
  34. //Character.isUpperCase(char c)判断字母大写,
  35. if(Character.isUpperCase(arr[0].charAt(i))&&Character.isUpperCase(arr[1].charAt(j))) {
  36. //如果count==0,那么是第一次判断
  37. //如果count==1,那么是第二次判断
  38. //如果count==2,那么是第三次判断
  39. if(count==0) {
  40. if(arr[0].charAt(i)==arr[1].charAt(j)) {
  41. count++;
  42. day=arr[1].charAt(j);
  43. dayShu=j;
  44. break;
  45. }
  46.  
  47. }
  48. }else {
  49. continue;
  50. }
  51. }
  52. }
  53. //2.
  54. for(int i=dayShu+1;i<arr[0].length();i++) {
  55. if((arr[0].charAt(i))==(arr[1].charAt(i))) {
  56. hour=arr[1].charAt(i);
  57.  
  58. break;
  59. }
  60. }
  61. //3.
  62. for(int i=0;i<arr[2].length();i++) {
  63. if(Character.isLetter(arr[2].charAt(i))&&Character.isLetter(arr[3].charAt(i))) {
  64. if((arr[2].charAt(i))==(arr[3].charAt(i))) {
  65. fen=i;
  66. break;
  67. }
  68. else {
  69. continue;
  70. }
  71. }
  72.  
  73. }
  74.  
  75. //
  76. switch(day) {
  77. case 65:
  78. System.out.print("MON"+" ");
  79. break;
  80. case 66:
  81. System.out.print("TUE"+" ");
  82. break;
  83. case 67:
  84. System.out.print("WED"+" ");
  85. break;
  86. case 68:
  87. System.out.print("THU"+" ");
  88. break;
  89. case 69:
  90. System.out.print("FRI"+" ");
  91. break;
  92. case 70:
  93. System.out.print("SAT"+" ");
  94. break;
  95. case 71:
  96. System.out.print("SUN"+" ");
  97. break;
  98. default:
  99. break;
  100. }
  101.  
  102. if(47<hour&&hour<58) {
  103. System.out.print("0"+hour+":");
  104. }else if(64<hour&&hour<79){
  105. System.out.print(hour-55+":");
  106. }
  107.  
  108. if(fen<10) {
  109. System.out.println("0"+fen);
  110. }else {
  111. System.out.println(fen);
  112. }
  113. }
  114. }

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

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. 多线程事儿(task)之 一(转载)

    此文转载作为记录,转载地址https://www.cnblogs.com/xiaoXuZhi/p/XYH_tsak_one.html 多线程,一个多么熟悉的词汇,作为一名程序员,我相信无论是从事什么开 ...

  2. $loj10156/$洛谷$2016$ 战略游戏 树形$DP$

    洛谷loj Desription Bob 喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的方法.现在他有个问题. 现在他有座古城堡,古城堡的路形成一棵树.他要在这棵树的节点上放置最少数 ...

  3. html页脚固定在底部的方法

    <style type="text/css"> html { height: 100%; } body { height: 100%; margin: 0; paddi ...

  4. HR系列GPS北斗时间同步服务器在电力系统典型应用

    HR系列GPS北斗时间同步服务器在电力系统典型应用 时间同步系统主要由主时钟.若干从时钟.时间信号传输介质组成.根据时间同步现场的不同要求,时间同步系统的结构配置有多种形式,主要分为三种:基本式.主从 ...

  5. Using TFRecords and tf.Example

    -----这篇其实是TensorFlow的官方tutorials,由于没有翻译,笔者姑且翻译一下,用来日后思考.------- 原址:https://www.tensorflow.org/tutori ...

  6. surging 社区版本支持.net core 3.1

    简介 surging 经过两年多的研发,微服务引擎已经略有雏形,也承蒙各位的厚爱, GitHub上收获了将近2800星,fork 811,付费用户企业也有十几家,还有咨询培训, 在2020年,我们将依 ...

  7. 2018铁人三项测评题 IOS99

    下面这一部分是我从网上复制过来的, 2.IOS 解题链接:http://ctf4.shiyanbar.com/web/IOS/index.php 这题页面中提示系统升级到了IOS99,我们可以想到修改 ...

  8. Quartz.NET总结(八)如何根据自己需要配置Topshelf 服务

    前面讲了如何使用Topshelf 快速开发windows服务, 不清楚的可以看之前的这篇文章:https://www.cnblogs.com/zhangweizhong/category/771057 ...

  9. bash的默认组合键

    组合键 组合按键 执行结果 Ctrl+C 终止目前的命令 Ctrl+D 输入结束(EOF),例如邮件结束的时候 Ctrl+M 就是Enter啦! Ctrl+S 暂停屏幕输出 Ctrl+Q 恢复屏幕输出 ...

  10. 命令别名设定:alias,unalias 历史命令:history

    1.别名设定举例 alias lm=‘ls -al | more’ 还可以取代现有指令 alias rm='rm -i' 查询现有别名 alias 取消别名 unalias lm 2.历史命令:his ...