#38938: 解題思路


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-10-28 09:54:40
c621. Reverse this and that !! -- it's david | From: [203.204.21.18] | 發表日期 : 2024-01-05 11:10

使用For迴圈和isalpha()函式一個字元一個字元進行判定。因為字母的部分是按照區塊進行排序,所以可以先宣告一個空的字串來存字母,當讀到字母時就將當前字母加到剛剛宣告的字串。如果是讀到數字的話就是確認存字母的字串是否為空,如果不是空的話就先reverse字串之後存到一個存字母陣列/Vector中,然後再將數字存到存數字的陣列/Vector中,兩邊分開處理。For迴圈結束之後使用reverse將數字的陣列做反轉,字母的不需要反轉。然後再使用一個For迴圈一樣跑輸入進來的字串做字元判定,當讀到數字時就輸出數字陣列中的第一個資料,然後就使用erase將第一個資料刪除。當讀到字母時也是將字母陣列中的第一個字串做輸出,但是在做erase之前要先把i+=alpha[0].length()-1,這樣子For迴圈下一次就會直接跳到這個連續字母的結尾的下一個資料,把i加完之後才能將字母陣列中的第一個資料做刪除。

範例程式碼

 
ZeroJudge Forum