2019-02-22-PAT乙级-1014-福尔莫斯约会
原文链接:1014-福尔莫斯约会
github代码地址:HibisciDai/OJ-PAT-ACM
2019-02-22-PAT乙级-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 分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。
辅助描述
1 2 3 4 5
| 作者: CHEN, Yue 单位: 浙江大学 时间限制: 200 ms 内存限制: 64 MB 代码长度限制: 16 KB
|
输入格式
输入在 4 行中分别给出 4 个非空、不包含空格、且长度不超过 60 的字符串。
输出格式
在一行中输出约会的时间,格式为 DAY HH:MM
,其中 DAY
是某星期的 3 字符缩写,即 MON
表示星期一,TUE
表示星期二,WED
表示星期三,THU
表示星期四,FRI
表示星期五,SAT
表示星期六,SUN
表示星期日。题目输入保证每个测试存在唯一解。
输入样例
1 2 3 4
| 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm
|
输出样例
算法实现
JAVA(openjdk)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| import java.util.Scanner;
public class Main { public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) { String input1 = sc.next(); String input2 = sc.next(); String input3 = sc.next(); String input4 = sc.next(); sc.close();
char c1 = ' '; char c2 = ' '; int c3 = ' ';
int countsame = 0;
int minlength1 = input1.length() > input2.length() ? input2.length() : input1.length(); for (int i = 0; i < minlength1; i++) { if (input1.charAt(i) == input2.charAt(i)) { countsame = i; c1 = input1.charAt(i); if ((int) c1 >= 65 && (int) c1 <= 71) { break; } } }
for (int i = countsame + 1; i < minlength1; i++) { if (input1.charAt(i) == input2.charAt(i)) { c2 = input1.charAt(i); break; } }
int minlength2 = input3.length() > input4.length() ? input4.length() : input3.length(); for (int i = 0; i < minlength2; i++) { if (input3.charAt(i) == input4.charAt(i)) { int minute = (int) input3.charAt(i); if ((minute >= 65 && minute <= 90) || (minute >= 97 && minute <= 122)) { c3 = i; break; } } }
switch (c1) { case 'A': System.out.print("MON"); break; case 'B': System.out.print("TUE"); break; case 'C': System.out.print("WED"); break; case 'D': System.out.print("THU"); break; case 'E': System.out.print("FRI"); break; case 'F': System.out.print("SAT"); break; case 'G': System.out.print("SUN"); break; default: break; }
System.out.print(" ");
int week = (int) c2;
switch (week) { case 1: System.out.print("01"); break; case 2: System.out.print("02"); break; case 3: System.out.print("03"); break; case 4: System.out.print("04"); break; case 5: System.out.print("05"); break; case 6: System.out.print("06"); break; case 7: System.out.print("07"); break; case 8: System.out.print("08"); break; case 9: System.out.print("09"); break; default: { if (!(week >= 0 && week <= 9)) { System.out.print(week - 55); } } break; }
System.out.print(":");
if (c3 >= 0 && c3 <= 9) { System.out.print("0"); System.out.print(c3); } } }
|
运行结果
1 2 3 4 5 6 7 8 9 10
| 状态 分数 题目 编译器 耗时 用户 部分正确 12 1014 Java (openjdk) 196 ms HibisciDai 测试点 结果 耗时 内存 0 答案正确 187 ms 11196 KB 1 答案错误 157 ms 11344 KB 2 答案错误 151 ms 11184 KB 3 答案错误 196 ms 11404 KB 4 答案错误 164 ms 11336 KB 5 答案正确 182 ms 11300 KB
|