題目連結
題意:
每兩行為一組測資,分別代表2字串
進行字串比對,分成三種 Case:
1. Yes: 字串一模一樣
2. Wrong Answer: 字串不一樣,包含大小寫差異或不同字母
3. Output Format Error: 其中一個字串包含空格
解法:
看似很簡單的判定
直覺想到一種情況
如果同時符合 2 跟 3 如何判定?
如:
S1 = "A BC"
S2 = "ABc"
假設字串的空格消除後仍然不同
似乎要判定成 2
因此,解題思路可以想成先判定 1 與否
若否,就可能為 2 或 3
3 可以看成包含空格的 1
將兩字串的字元一一比對
遇到空格跳過,遇到字元不一樣為 2
若比到尾巴都相符
也就是 3,包含空格的 1 (真正的1一開始就排除了)
程式(Java):
題意:
每兩行為一組測資,分別代表2字串
進行字串比對,分成三種 Case:
1. Yes: 字串一模一樣
2. Wrong Answer: 字串不一樣,包含大小寫差異或不同字母
3. Output Format Error: 其中一個字串包含空格
解法:
看似很簡單的判定
直覺想到一種情況
如果同時符合 2 跟 3 如何判定?
如:
S1 = "A BC"
S2 = "ABc"
假設字串的空格消除後仍然不同
似乎要判定成 2
因此,解題思路可以想成先判定 1 與否
若否,就可能為 2 或 3
3 可以看成包含空格的 1
將兩字串的字元一一比對
遇到空格跳過,遇到字元不一樣為 2
若比到尾巴都相符
也就是 3,包含空格的 1 (真正的1一開始就排除了)
上例而言,我們先透過 String 的 equals 方法
(若 S1.equals(S2)回傳為 true,表示S1, S2兩字串相同)
發現不相同,再依序比
1) A 與 A 比
2) 空格與 B 比,S1 右移一位
3) B 與 B 比
4) C 與 c 比,發現不同,判定為 Wrong Answer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
public class Main { | |
public static void main(String args[]) { | |
Scanner sc = new Scanner(System.in); | |
int t = Integer.parseInt(sc.nextLine()); | |
for (int i = 1; i <= t; i++) { | |
System.out.print("Case " + i + ": "); | |
String s1 = sc.nextLine(); | |
String s2 = sc.nextLine(); | |
if (s1.equals(s2)) | |
System.out.println("Yes"); | |
else { | |
s1 = s1.trim(); | |
s2 = s2.trim(); | |
boolean wrong = false; | |
int in1 = 0, in2 = 0; | |
while (in1 != s1.length() || in2 != s2.length()) { | |
in1 = (in1 == s1.length()) ? in1-1 : in1; | |
in2 = (in2 == s2.length()) ? in2-1 : in2; | |
if (s1.charAt(in1) == ' ') | |
in1++; | |
else if (s2.charAt(in2) == ' ') | |
in2++; | |
else if (s1.charAt(in1) != s2.charAt(in2)) { | |
wrong = true; | |
break; | |
} | |
else { | |
in1++; | |
in2++; | |
} | |
} | |
if (wrong) | |
System.out.println("Wrong Answer"); | |
else | |
System.out.println("Output Format Error"); | |
} | |
} | |
} | |
} |
留言
張貼留言