題目連結:
題目大意:
模擬PTT的色碼表以及輸入,並依照固定格式輸出一些文字。
這題直接看原題目敘述比較清楚、容易理解,額外的闡釋沒有意義。
解題思維:
用迴圈跑輸入進來的字串。
首先,宣告一個存文字內容的字串S。
另外,宣告一個buffer字串,用來暫時儲存字串中非色碼的字元(就是 「[」、「*」、「m」、「;」和「m 、 ;」前面的顏色代碼,以外的字元)。
然後一遇到「*」或「;」就開始存數字,一遇到「m」或另一個「;」就把現有的顏色、背景設定改成指定的樣式(根據題目給的數字表)。
然後一遇到「[」,就把buffer的內容存入S裡,並將現有的設定套用到剛剛多新增的字串(實際上是存在另外4個陣列裡)。並將buffer變為空字串,以便存接下來的內容。
然後,迴圈跑完後,檢查buffer是否為空。如果是,一樣要存進去,並套用現有顏色設定。
最後,按照格式輸出即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。