1. 程式人生 > >PAT——1014. 福爾摩斯的約會

PAT——1014. 福爾摩斯的約會

con mon cal length kkk asi 字符 cor 位置

大偵探福爾摩斯接到一張奇怪的字條:“我們約會吧! 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

 1 package com.hone.basical;
 2 
 3 import
java.util.Scanner; 4 5 /** 6 * 原題目:https://www.patest.cn/contests/pat-b-practise/1014 7 * 8 * @author Xia 9 * 運行超時!!!整體程序沒有問題 星期的處理(用一個數組來處理) 10 */ 11 public class basicalLevel1014HolmesDate2 { 12 public static void main(String[] args) { 13 String[] weeks = { "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" };
14 Scanner input = new Scanner(System.in); 15 String s1 = input.nextLine(); 16 String s2 = input.nextLine(); 17 String s3 = input.nextLine(); 18 String s4 = input.nextLine(); 19 int i = 0; 20 while ((i < s1.length()) && (i < s2.length())) { 21 if (s1.charAt(i) == s2.charAt(i)) { 22 if (‘A‘ <= s1.charAt(i) && s1.charAt(i) <= ‘Z‘) { 23 int a = s1.charAt(i) - ‘A‘; 24 System.out.print(weeks[a] + " "); 25 break; 26 } else if (‘a‘ <= s1.charAt(i) && s1.charAt(i) <= ‘z‘) { 27 int a = s1.charAt(i) - ‘a‘; 28 System.out.print(weeks[a] + " "); 29 break; 30 } 31 } 32 i++; 33 } 34 int j = i + 1; 35 while ((j < s1.length()) && (j < s2.length())) { 36 if (s1.charAt(j) == s2.charAt(j)) { 37 if (‘A‘ <= s1.charAt(j) && s1.charAt(j) <= ‘Z‘) { 38 int a = s1.charAt(j) - ‘A‘ + 10; 39 System.out.print(a + ":"); 40 break; 41 } else if (‘a‘ <= s1.charAt(j) && s1.charAt(j) <= ‘z‘) { 42 int a = s1.charAt(j) - ‘a‘ + 10; 43 System.out.print(a + ":"); 44 break; 45 } else if (‘0‘ <= s1.charAt(j) && s1.charAt(j) <= ‘9‘) { 46 System.out.print("0" + s1.charAt(j) + ":"); 47 break; 48 } 49 } 50 j++; 51 } 52 int k = 0; 53 while ((k < s3.length()) && (k < s4.length())) { 54 if (s3.charAt(k) == s4.charAt(k)) { 55 if ((‘A‘ <= s3.charAt(k) && s3.charAt(k) <= ‘Z‘) || (‘a‘ <= s3.charAt(k) && s3.charAt(k) <= ‘z‘) 56 || (‘0‘ <= s3.charAt(k) && s3.charAt(j) <= ‘9‘)) { 57 if (k < 10) 58 System.out.println("0" + k); 59 else 60 System.out.println(k); 61 break; 62 } 63 } 64 k++; 65 } 66 } 67 }






PAT——1014. 福爾摩斯的約會