切換
舊版
前往
大廳
主題

ZeroJudge - e788: b3.畢業典禮(Ceremony) 解題心得

Not In My Back Yard | 2020-06-07 00:29:02 | 巴幣 0 | 人氣 403

題目連結:


題目大意:
第一列給定一正整數 N (1 ≦ N ≦ 100),代表有 N 位同學。接著有 N 列輸入,每列給定兩的字串 ID 、 s (1 ≦ |s| ≦ 10),代表一位學生的學號以及英文姓名。

學號固定九個字元長,學號只會是 4 、 6 、 8 開頭,而學號的最後一個字元為英文字母代表該學生的學院代碼。

請將這 N 位同學依照學院代碼按字典序排序。如果學院代碼一致,則看學號開頭由小到大排。如果還是一致,則按照輸入的順序從先到後排。

輸出時,請先輸出該學生的學院代碼再輸出學生的姓名。輸出格式參見範例輸出。



範例輸入:
5
60547020S Wayne
40547036S Lisa
40707001A Alber
80652135E Frank
40923313A Roger


範例輸出:
A: Alber
A: Roger
E: Frank
S: Lisa
S: Wayne


解題思維:
用一個結構(Struct)把所有資料包在一起(可以將學號拆成開頭、學院代碼以及剩下的部分),然後寫一個符合題目條件的布林函數,如這題(不過這題我的寫法是多載(Overload)運算子,即幫結構定義運算子的內容)。

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

創作回應

更多創作