切換
舊版
前往
大廳
主題

ZeroJudge - e925: pD. 學號檢查 解題心得

Not In My Back Yard | 2020-03-24 00:17:11 | 巴幣 2 | 人氣 261

題目連結:


題目大意:
第一列給定一正整數 N (1 ≦ N ≦ 76),代表接著有 N 列輸入。每列給定一長度固定為 4 個字元之字串,每個字串代表一組系院組之編號。最後有十列的輸入,每列給定長度為 9 個字元的字串,每個字串代表一個大學部學號。

一個大學部學號之第一碼為 B ,第二、三碼入學年度末兩位,第四 ~ 七是所屬的系院組之編號,第八、九碼是學生的流水號。

對於每個學號,判斷其是否為合法的大學部學號。如果合法輸出「Y」;反之,輸出「N」。並在最後統計出錯誤的學號之佔比。



範例輸入:
76
0000
1000
1010
1011
1020
1030
1040
1050
1060
1070
1090
2000
2010
2020
2030
2040
2070
2080
2090
3000
3021
3022
3023
3030
3050
3100
4000
4010
4020
4030
4031
4040
4060
4080
4081
4090
4120
5000
5010
5020
5040
5050
5070
5080
6000
6010
6020
6030
6050
6060
6070
6080
6090
6100
6110
6120
6130
7000
7011
7012
7020
7030
7040
7050
8000
8010
9000
9010
9020
A000
A011
A012
A013
B000
B010
B020
B00100000
R00100000
BA0100000
B00101300
B001000A0
B09902005
B06A01233
B12701256
B80310020
B98901030


範例輸出:
Y
N
N
N
N
Y
Y
Y
Y
Y
0.4


解題思維:
簡單的字串流程操作即可。

首先記錄下所有的系院組編號。然後對於每一組給定的學號,先判斷是否為 B 開頭、再判斷第二 ~ 三碼是否皆是數字(出現字母或是其他字元就是錯誤)、再判斷第四 ~ 七碼是否有對應到先前其中一組的系院組編號,最後再看第八 ~ 九是否也是數字。如果中途有不符合的,代表該學號即是錯誤的學號。

此外,在判斷學號合法與否的過程中順便紀錄有多少錯誤的學號,最後除以 10 即是所求的錯誤學號佔比。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作