切換
舊版
前往
大廳
主題

ZeroJudge - e525: 106 彰雲嘉區複賽 - Q5 回文日期問題 解題心得

Not In My Back Yard | 2020-08-03 00:00:03 | 巴幣 0 | 人氣 282

題目連結:


題目大意:
第一列給定一正整數 n ,代表接著有 n 列輸入。每列給定一個介於 1000(含) ~ 9999(含) 的正整數,代表一個年份。

一個日期可以表示為一正整數,即將年、月、日三個數字直接接在一起。而當月或是日的值 < 10,也就是只有一位數的時候,可以選擇在前面加一個位數的前導 0 (也可以不要)。例如 1 月 2 日,可以變為 0102 、 012 、 102 或是 12 四個數字。

一個日期如果是迴文,則代表其由左向右讀與由右向左讀是一樣的。而一個日期可能有多個數字可以表示,在本題那些數字也要考慮進來。

試問,該年有多少日期是回文?請先輸出迴文的數量,再由小到大輸出迴文的數字。輸出格式參見範例輸出。



範例輸入:
5
1111
1201
2017
1340
1010


範例輸出:
4 111111 1111111 1111111 11111111
2 1201021 12011021
2 2017102 2017102
0
3 1010101 1010101 10100101


解題思維:
可以採取跟這題一樣的列舉日期之方式。

每遇到一個日期,就判斷該日期可以形成哪些數字。再對那些數字判斷是否為迴文。而判斷方式可以參見這題

接著蒐集所有是迴文的數字,由小到大排序即是所求。




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

創作回應

更多創作