LeetCode 筆記 - 394. Decode String
解析 LeetCode 經典字串解碼題目。本文利用堆疊 (Stack) 資料結構處理巢狀重複結構 `k[encoded_string]`,逐步將字串展開並組合,詳細說明處理數字、中括號與字母的狀態切換邏輯。
題目在此 394. Decode String
給定一個編碼過的字串,請將其解碼回原本的字串。編碼規則為 k[encoded_string],表示 encoded_string 會被重複 k 次。
k 是一個正整數,且 encoded_string 只會包含小寫英文字母。你可以假設輸入的字串是有效的,且不會有額外的空白字元,且原始資料不會被重複編碼。
例如:
s = "3[a]2[bc]",會回傳"aaabcbc"s = "3[a2[c]]",會回傳"accaccacc"
解題思維
這題可以利用 Stack 來解決,主要是透過 Stack 來儲存目前的字串和數字,當遇到 ] 時,就將 Stack 中的元素彈出來,並進行解碼。
程式碼
1 | class Solution: |