【PAT 乙級(Basic Level)】福爾摩斯的約會
阿新 • • 發佈:2019-02-05
唉,原先不知道怎麼操作字串,找到了一個答案。結果6個測試點中有3個錯誤,測了好久還是找不到錯誤在哪,結果又百度到一份答案,居然通過了,對比了半天還是不知道錯誤在哪裡,頭暈,先存起來,下次再找,這個題目做了一天快到,噁心死了。我果然很水。
錯誤答案原始碼:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String[] week = { "MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN" }; char ch[] = new char[2]; int minu = 0; int flag = 0, flag1 = 0; String s1 = s.nextLine(); String s2 = s.nextLine(); String s3 = s.nextLine(); String s4 = s.nextLine(); int minlength1 = s1.length() < s2.length() ? s1.length() : s2.length(); int minlength2 = s3.length() < s4.length() ? s3.length() : s4.length(); for (int i = 0; i < minlength1; i++) { if (s1.charAt(i) == s2.charAt(i) && s1.charAt(i) >= 'A' && s1.charAt(i) <= 'G' && flag == 0) { ch[0] = s1.charAt(i); flag = 1; continue; } if ((s1.charAt(i) == s2.charAt(i)) && ((s1.charAt(i) >= 'A' && s1.charAt(i) <= 'N') || (s1 .charAt(i) >= '0' && s1.charAt(i) <= '9') && flag1 == 0 && flag == 1)) { ch[1] = s1.charAt(i); flag1 = 1; break; } } for (int i = 0; i < minlength2; i++) { if (s3.charAt(i) == s4.charAt(i) && ((s3.charAt(i) >= 'A' && s3.charAt(i) <= 'Z') || (s3 .charAt(i) >= 'a' && s3.charAt(i) <= 'z'))) { minu = i; break; } } if (minu >= 0 && minu <= 9) { if (ch[1] >= '0' && ch[1] <= '9') { System.out.print(week[ch[0] - 'A'] + " " + ch[1] + ":0" + minu); } if (ch[1] >= 'A' && ch[1] <= 'N') { System.out.print(week[ch[0] - 'A'] + " " + (ch[1] - 'A' + 10) + ":0" + minu); } } else { if (ch[1] >= '0' && ch[1] <= '9') { System.out.print(week[ch[0] - 'A'] + " " + ch[1] + ":" + minu); } if (ch[1] >= 'A' && ch[1] <= 'N') { System.out.print(week[ch[0] - 'A'] + " " + (ch[1] - 'A' + 10) + ":" + minu); } } } }
正確答案原文地址:http://blog.csdn.net/jason_wang1989/article/details/25005537
正確答案原始碼:
import java.util.Scanner; public class Main { public static void main(String[] args) { String[] strs = new String[7]; strs[0] = "MON"; strs[1] = "TUE"; strs[2] = "WED"; strs[3] = "THU"; strs[4] = "FRI"; strs[5] = "SAT"; strs[6] = "SUN"; Scanner cin = new Scanner(System.in); String str1 = cin.nextLine(); String str2 = cin.nextLine(); String str3 = cin.nextLine(); String str4 = cin.nextLine(); int i; int j = 0; for (i = 0; i <= str1.length() && i <= str2.length(); i++) { if (str1.charAt(i) >= 'A' && str1.charAt(i) <= 'G' && str1.charAt(i) == str2.charAt(i)) { System.out.print(strs[str1.charAt(i) - 'A'] + " "); break; } } for (i = i + 1; i <= str1.length() && i <= str2.length(); i++) { if ((str1.charAt(i) >= '0' && str1.charAt(i) <= '9' || str1 .charAt(i) >= 'A' && str1.charAt(i) <= 'N') && str1.charAt(i) == str2.charAt(i)) { if (str1.charAt(i) >= '0' && str1.charAt(i) <= '9') { System.out.print("0" + (str1.charAt(i) - '0') + ":"); } else { System.out.print((str1.charAt(i) - 'A' + 10) + ":"); } break; } } for (i = 0; i <= str3.length() && i <= str4.length(); i++) { if ((str3.charAt(i) >= 'a' && str3.charAt(i) <= 'z' || str3 .charAt(i) >= 'A' && str3.charAt(i) <= 'Z') && str3.charAt(i) == str4.charAt(i)) { j = i; break; } } if (j < 10) { System.out.println("0" + j); } else { System.out.println(j); } } }
搜尋
複製