題目: LeetCode - 6. ZigZag Conversion
題目說明
給一個字串,依照要求 ( ZigZag ) 將字串轉換。題目其實就是每次都往下換行,到底再往上換行,到頂再往下不斷反覆直到 s
用盡。
解題思路
使用陣列儲存每一行的字符,遍歷陣列,依照位置放入陣列中的字串,最後再把所有字串串接起來即可。
參考解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public: string convert(string s, int numRows) { if(numRows == 1) return s; int n = s.length(), j = -1; bool reverse = false; string res; vector<string> v(numRows); for(auto& c : s) { if(!reverse) { v[++j] += c; if(j >= numRows - 1) reverse = true; } else { v[--j] += c; if(!j) reverse = false; } } for(auto& str : v) res += str; return res; } };
|