2019-02-22-PAT乙级-1014-福尔莫斯约会

2019-02-22-PAT乙级-1014-福尔莫斯约会

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、以及大写字母 AN 表示);后面两字符串第 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

输出样例

1
THU 14:04

算法实现

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
文章作者: HibisciDai
文章链接: http://hibiscidai.com/2019/02/22/2019-02-22-PAT乙级-1014-福尔莫斯约会/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
支付宝打赏
微信打赏