題目: LeetCode - 6. ZigZag Conversion
題目說明
給一個字串,依照要求 ( ZigZag ) 將字串轉換。題目其實就是每次都往下換行,到底再往上換行,到頂再往下不斷反覆直到 s 用盡。
解題思路
使用陣列儲存每一行的字符,遍歷陣列,依照位置放入陣列中的字串,最後再把所有字串串接起來即可。
參考解法
| 12
 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;
 }
 };
 
 |