題目連結:
題目大意:
第一列給定一正整數 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
解題思維:
每遇到一個日期,就判斷該日期可以形成哪些數字。再對那些數字判斷是否為迴文。而判斷方式可以參見
這題。
接著蒐集所有是迴文的數字,由小到大排序即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。