d634: 魔法卡magic
內容
繼梅蘭城的法師們在你的幫助下,成功節約符咒之後,
他們順利大量生產了各式魔法的符咒,但是…
符咒太多了所以把符咒室弄得亂七八糟的-▽-
所以請你寫一個程式再度幫助他們把符咒整理好吧。
輸入
每個測資點僅一組測資,不必 EOF 讀檔。
第一行有整數 n(1<n<=100000)表示接下來有 n 張符咒
從第二行開始的 n 行
每行有一個符咒的名稱,內容可能包含小寫字母、大寫字母、數字、空格字元。
並且每行不超過 10 個字元
7
penguin
jacker
jack doom
JACK
ws23
aszx87140
e196819
輸出
請依照”檔案系統”的方法,將這 n 個符咒排序後的結果輸出。
所謂檔案系統排序就是,
對於兩個英文單字的比較以 abc 和 xyz 來說,
先從第一個字母的”ASCII”值開始比,
(以這題出現的 ASCII 來說,空格<數字<大寫字母(AZ)<小寫字母(az))
如 a<x,所以 abc 在 xyz 前面。
如果第一個字母相同,則比較下一個字母,如 abx 對上 aby,
比到第三位 x<y,所以 abx 在 aby 前面。
JACK
aszx87140
e196819
jack doom
jacker
penguin
ws23
解題思路
簡單的字串排序,除了存字串用的陣列,再開一個指標陣列去映射原陣列,這樣只要排序指標陣列並輸出就可以大幅減少記憶體操作的次數。
完整程式碼
AC (53ms, 2.7MB)
|