乙级PAT真题之福尔摩斯的约会(字符串的基本输入)
题目描述 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 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
题意:输入的四个字符串,前两个字符串是为了判断星期和小时(也就是前面两个字符串的两对字符相同),后面两对字符串就是判断分钟。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String []args) throws IOException {
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));///字符流
String[] s= new String[4];
for(int i=0;i<4;i++) {
s[i]=buffer.readLine();///会抛出错误。读取一行数据
}
String str = "";///初始化
for(int i=0,flag=0;i<Math.min(s[0].length(), s[1].length());i++) {///前两对字符串,选出最短的一串
char zero = s[0].charAt(i);
char one = s[1].charAt(i);
if(flag==1&&zero==one) {///先判断时针就可以防止冲突
if(zero>='0'&&zero<='9') {
str = str+"0"+zero+":";
break;
}
else if(zero>='A'&&zero<='Z') {
int num = zero-'A'+10;
str = str+Integer.toString(num)+":";///执行将int转换为String的操作
break;
}
}
if(zero>='A'&&zero<='Z'&&one>='A'&&one<='Z') {
if(zero==one) {
flag=1;
switch((zero-'A'+1)%7) {
case 0:
str+="SUN ";
break;
case 1:
str+="MON ";
break;
case 2:
str+="TUE ";
break;
case 3:
str+="WED ";
break;
case 4:
str+="THU ";
break;
case 5:
str+="FRI ";
break;
case 6:
str+="SAT ";
break;
}
}
}
}
for(int i=0;i<Math.min(s[2].length(), s[3].length());i++) {
char two = s[2].charAt(i);
char three = s[3].charAt(i);
if(two>='A'&&two<='Z'&&three>='A'&&three<='Z'||two>='a'&&two<='z'&&three>='a'&&three<='z') {
if(two==three) {
i=i>60?i%60:i;
if(i<10) {
str=str+"0"+Integer.toString(i);
break;
}
else {
str=str+Integer.toString(i);
break;
}
}
}
}
System.out.println(str);
}
}
不忘初心,方得始终。只有走过弯路,才更确信当初最想要的是什么。

浙公网安备 33010602011771号