※ 引述《Aligu1009 (=.=)》之銘言:
: URL中的"%"符號及其後面的兩個字元可以代表某些特殊符號
: 如:"%20"代表空白" "
: 若給予 "%??" 與其代表的值的對應
: 請寫出一個程式能decode url
: 這個題目比較複雜的地方在於下面這種狀況:
: 假設"%ab"代表"2"
: 則"%%ab0"會先decode成"%20", 再decode成" "
傳統學校資料結構可能有個作業是簡單的 + - * / 計算.
先把輸入的式子放到後序式,然後從後序式的頭開始掃描,
遇到運算元就丟進堆疊,遇到運算子就消耗堆疊.
你這個題目是反過來,做一個前序式. 每個運算子 % 對應一個運算元.
可以從頭掃描,遇到 % 就放進堆疊,遇到運算元就取適當的長度 (通常longest match)
然後消耗堆疊.
不過都是 % 放進堆疊沒什麼意思, % 的處理可以用一個變數
記錄儲存數目就好.
消耗掉一個堆疊的 %, 就把結果放回輸入字串的前端.
不過要處理消耗出來的結果也是 % 該怎麼辦. 計算出 % 是要跳過的.
也就是如果求出一個 %, 就不要放回輸入字串前端.
這樣應該可以吧.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.229.203
※ 編輯: yauhh 來自: 59.112.229.203 (10/16 10:59)