The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)
1 2 3
P A H N A P L S I I G Y I R
And then read line by line: “PAHNAPLSIIGYIR”
Write the code that will take a string and make this conversion given a number of rows:
var convert = function(s, numRows) { if (numRows === 1) return s; const calcRow = numRows - 1 const base = calcRow * 2; let result = ''; for (let i = 0; i < numRows; i++) { const start = base - (2* (i % calcRow)) const gap = base - start || start; let num = i let isEven = true while(s[num]) { result += s[num]; num += isEven ? start : gap isEven = !isEven; } } return result };