LeetCode每日一練【6】
阿新 • • 發佈:2022-04-22
LeetCode每日一練
Zigzag Conversion
/** * @param {string} s * @param {number} numRows 3 * @return {string} */ const convert = (s, numRows) => { const strs = [] const len = s.length const cyclelen = numRows * 2 - 2 // 迴圈長度 // 1. 只為1行的時候,直接返回結果 if (numRows === 1) return s // 2. 逐行讀取,以行的形式放進臨時陣列中 for(let row = 0; row < numRows; row++) { // 2.1 index + row 每行的字元索引值 共同列 // 2.2 index + cyclen 每行的字元索引跨度 for (let index = 0; index + row < len; index += cyclelen) { strs.push(s[index + row]) // 2.3 index + cyclen - row 每行的字元索引值 不同列 if (row !== 0 && row !== numRows - 1 && index + cyclelen - row < len) { strs.push(s[index + cyclelen - row]) } } } return strs.join('') }; const s1 = 'PAYPALISHIRING' const res = convert(s1, 4) console.log(res) // PINALSIGYAHRPI