題目連結
題意:
每兩行為一組測資,分別代表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
留言
張貼留言