leetcode : Zigzag Conversion
runtime 4 ms, beats 97.21% of cpp submissions
O(n) solution with explanation
tags: string, simulation
🔗 link
📖 description
給定一字串以及變數 row,將所有字元以特殊形式排列後,將排列後的字元以上到下、左到右的順序組合成新字串並回傳。
ex. s = “PAHNAPLSIIGYIR”, row = 3
將字串排成這樣
P A H N A P L S I I G Y I R
並按照順序組合成 “PAHNAPLSIIGYIR”
🧠 solution
最直接的想法是把一個2維陣列建出來,接著以 row 的順序組合,但這題可以避免這個步驟,只需要想像把整個2維陣列擠壓成類似底下這樣,在遍歷字串時決定好每個字元出現的在第幾個 row,就可以簡單的完成。
PAHN APLSIIG YIR
⏳ time complexity
遍歷一次字串 O(n) ,組合字串 O(row)
總時間複雜度 O(n)
📝 code
1 | class Solution { |
