题目描述:
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!
3485
d
j
D
k
x
h
4
h
h
G
E
3485djDkxh4hhGE
3485djDkxh4hhGE
2984
a
k
D
f
k
k
k
k
g
g
E
d
s
b
2984akDfkkkkggEdsb
2984akDfkkkkggEdsb KaTeX parse error: Expected 'EOF', got '&' at position 2: s&̲hgsfdk
d
&
H
y
s
c
v
n
m
d\&Hyscvnm
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
代码示例(Java实现)
import java
.util
.Scanner
;
public class Main {
public static void main(String
[] args
) {
Scanner cin
= new Scanner(System
.in
);
String
[] days
= {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
String s1
= cin
.nextLine();
String s2
= cin
.nextLine();
String s3
= cin
.nextLine();
String s4
= cin
.nextLine();
int flag
= 0;
for (int i
= 0; i
< s1
.length() && i
< s2
.length(); i
++) {
char c1
= s1
.charAt(i
);
char c2
= s2
.charAt(i
);
if (flag
== 0 && c1
== c2
&& c1
>= 'A' && c1
<= 'G') {
System
.out
.print(days
[c1
- 'A'] + " ");
flag
++;
continue;
}
boolean status
= flag
== 1 && c1
== c2
&& (c1
>= '0' && c1
<= '9' || c1
>= 'A' && c1
<= 'N');
if (status
) {
if (c1
<= '9') {
System
.out
.print("0" + c1
+ ":");
} else {
System
.out
.print(((c1
- 'A') + 10) + ":");
}
break;
}
}
for (int i
= 0; i
< s3
.length() && i
< s4
.length(); i
++) {
char c1
= s3
.charAt(i
);
char c2
= s4
.charAt(i
);
boolean status
= c1
== c2
&& (c1
>= 'a' && c1
<= 'z' || c1
>= 'A' && c1
<= 'Z');
if (status
) {
System
.out
.printf("d", i
);
break;
}
}
}
}