思路:
代码:
// @lc code=start
/**
* @param {string} s
* @param {number} numRows
* @return {string}
*/
var convert = function (s, numRows) {
// 如果只有一行或字符的长度小于行数,返回原数组
if (numRows === 1 || s.length < numRows) return s;
let rows = []; //行组
let reserve = false; //正序还是反序
let count = 0; //第几行的数据
// 循环出几个行组
for (var i = 0; i < numRows; i++) rows[i] = [];
// 循环每个字符
for (let i = 0; i < s.length; i++) {
rows[count].push(s[i]);
reserve ? count-- : count++;
if (count === 0 || count === numRows - 1) reserve = !reserve;
}
// 返回最终的值
return rows.reduce((reversted, v) => {
return reversted + v.join("");
}, "");
};
小总结:
从头到尾,从尾到头,