PAT (Basic Level) Practise (中文) 1014. 福尔摩斯的约会 (20)
来源:互联网 发布:python socket select 编辑:程序博客网 时间:2024/06/03 22:56
1014. 福尔摩斯的约会 (20)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!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//部分正确12分
// 其实很不完善,第二个时间只能是A-N之间,否则第一个会出错
// 这个算法耦合度太高,效率太低,比赛把这个写出来基本很多时间就浪费了
// 题目基本都是补0输出的,注意这个
// 第一个思路由于控制循环跳出录两个数据,然后根据数据在StringBuffer后面追加数据拼接
// 由于第一第二位数据重复录入,第一位第二位都有分别的匹配规则 没能完成
// 第二个思路是先把前两位录入,先不根据字符追加,而是存起来最后用另一个StringBuffer追加
// ,然后再把最后一个数据拼接
/*
* 注意的问题,第一第二位数据录入 12行 34行数据长短次序避免数组下标越界 补0输出
*/
/*
*
*
asdfDE
asddDE
addfdsa
asssss
THU 14:0005//最后一个匹配到一个就跳出
asdfD1
asdfD1
ssssddf
sssssdf
THU 01:00//这组没问题
asdfD99
asdfD99
sdfsdfsacv
xzvsdff
THU 09:03//第四组数据会测试第一第二行第二个数据0||9
*/
// 这个算法耦合度太高,效率太低,比赛把这个写出来基本很多时间就浪费了
// 题目基本都是补0输出的,注意这个
// 第一个思路由于控制循环跳出录两个数据,然后根据数据在StringBuffer后面追加数据拼接
// 由于第一第二位数据重复录入,第一位第二位都有分别的匹配规则 没能完成
// 第二个思路是先把前两位录入,先不根据字符追加,而是存起来最后用另一个StringBuffer追加
// ,然后再把最后一个数据拼接
/*
* 注意的问题,第一第二位数据录入 12行 34行数据长短次序避免数组下标越界 补0输出
*/
/*
*
*
asdfDE
asddDE
addfdsa
asssss
THU 14:0005//最后一个匹配到一个就跳出
asdfD1
asdfD1
ssssddf
sssssdf
THU 01:00//这组没问题
asdfD99
asdfD99
sdfsdfsacv
xzvsdff
THU 09:03//第四组数据会测试第一第二行第二个数据0||9
*/
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); char arr_str1[] = bf.readLine().toCharArray(); char arr_str2[] = bf.readLine().toCharArray(); char arr_str3[] = bf.readLine().toCharArray(); char arr_str4[] = bf.readLine().toCharArray(); StringBuffer sb = new StringBuffer(); StringBuffer sb2 = new StringBuffer(); int length1 = Math.min(arr_str1.length, arr_str2.length); int length2 = Math.min(arr_str3.length, arr_str4.length); String arr[]=new String[2]; int flag=0; for (int i = 0; i < length1; i++) { if (arr_str1[i] == arr_str2[i] && arr_str1[i] >= 'A' && arr_str1[i] <= 'G' && flag==0) { arr[0]=arr_str1[i]+""; flag++; continue; } if (arr_str1[i] == arr_str2[i] && arr_str1[i] >= 'A' && arr_str1[i] <= 'N' && flag==1){ arr[1]=arr_str1[i]+""; flag++; continue; } } for (int i = 0; i < arr.length; i++) { sb.append(arr[i]); } char result[]=sb.toString().toCharArray(); switch (result[0]) { case 'A': sb2.append("MON"); break; case 'B': sb2.append("THE"); break; case 'C': sb2.append("WED"); break; case 'D': sb2.append("THU"); break; case 'E': sb2.append("FRI"); break; case 'F': sb2.append("SAT"); break; case 'G': sb.append("SUN"); break; } sb2.append(" "); switch (result[1]) { case '0': sb2.append("00"); break; case '1': sb2.append("01"); break; case '2': sb2.append("02"); break; case '3': sb2.append("03"); break; case '4': sb2.append("04"); break; case '5': sb2.append("05"); break; case '6': sb2.append("06"); break; case '7': sb2.append("07"); break; case '8': sb2.append("08"); break; case '9': sb2.append("09"); break; case 'A': sb2.append("10"); break; case 'B': sb2.append("11"); break; case 'C': sb2.append("12"); break; case 'D': sb2.append("13"); break; case 'E': sb2.append("14"); break; case 'F': sb2.append("15"); break; case 'G': sb2.append("16"); break; case 'H': sb2.append("17"); break; case 'I': sb2.append("18"); break; case 'J': sb2.append("19"); break; case 'K': sb2.append("20"); break; case 'L': sb2.append("21"); break; case 'M': sb2.append("22"); break; case 'N': sb2.append("23"); break; } sb2.append(":"); for (int i = 0; i < length2; i++) { if (arr_str3[i] == arr_str4[i]&&arr_str3[i]>='a'&&arr_str3[i]<='z') { if (i >= 0 && i < 10) { sb2.append("0" + (i)); } else { sb2.append((i)); } } } System.out.println(sb2); }}
阅读全文
0 0
- PAT (Basic Level) Practise (中文)1014.福尔摩斯的约会
- PAT (Basic Level) Practise (中文)1014. 福尔摩斯的约会 (20)
- PAT (Basic Level) Practise (中文) 1014. 福尔摩斯的约会 (20)
- PAT (Basic Level) Practise (中文)1014. 福尔摩斯的约会 (20)
- PAT (Basic Level) Practise 1014. 福尔摩斯的约会 (20)
- PAT Basic Level 1014. 福尔摩斯的约会(20)
- 【C++】浙大PAT (Basic Level)1014. 福尔摩斯的约会 (20)
- PAT BASIC LEVEL 1014. 福尔摩斯的约会 (20)
- Basic Level 1014. 福尔摩斯的约会 (20)
- 【PAT 乙级(Basic Level)】福尔摩斯的约会
- PAT(Basic Level)_1014_福尔摩斯的约会
- PAT.Basic Level. T.1014.福尔摩斯的约会
- Pat(Basic Level)Practice--1014(福尔摩斯的约会)
- PAT乙级(Basic Level)真题 >福尔摩斯的约会
- PAT (Basic Level) Practise (中文)
- PAT (Basic Level) Practise (中文)
- PAT (Basic Level) Practise (中文)--1001
- PAT (Basic Level) Practise (中文)
- 网易笔试编程题
- 每日积累(二一)--mysql 数据库优化
- 如何挖掘热门关键词
- 使用Redis做MyBatis的二级缓存
- 2018网易校招内推-疯狂队列
- PAT (Basic Level) Practise (中文) 1014. 福尔摩斯的约会 (20)
- Android 框架炼成 教你如何写组件间通信框架EventBus
- 技术文章 | 波司登全国超千家门店_销售状况如何实时监控?
- offsetTop 与 style.top 的差别
- 集成ShareSDK第三方(QQ)登录时遇到的小问题
- DevOps 从这里开始
- 设置drawables对象背景导致资源被影响
- SA + Height 代码详解
- python os.path模块常用方法详解