Skip to content

Code:

js
/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function(s, numRows) {
    if (numRows < 2) {
        return s
    }

    const strings = new Array(numRows).fill('')
    let r = 0
    let c = 0

    for (let i = 0; i < s.length;) {
        if ((c % (numRows - 1)) === 0) {
            strings[r] += s[i++]
        } else {
            if (((r + c) % (numRows - 1)) === 0) {
                strings[r] += s[i++]
            }
        }

        r++

        if (r === numRows) {
            r = 0
            c++
        }
    }

    return strings.join('')
};



console.log(convert("PAYPALISHIRING", 3))
console.log(convert("PAYPALISHIRING", 4))
console.log(convert("A", 1))

❤ With Algorithm