function stringToZigzagGrid(text: string, numRows: number): string[][] | string { if (numRows < 2) return text const grid: string[][] = Array.from({ length: numRows }, () => []) let row = 0, col = 0, direction = "down" for (let index = 0; index < text.length; index++) { grid[row][col] = text[index] if (row === numRows - 1) { direction = "up" } else if (row === 0) { direction = "down" } if (direction === "down") { row++ } else { col++ row-- for (let r = 0; r < numRows; r++) { if (!grid[r][col]) grid[r][col] = " "; } } } return grid } console.log(stringToZigzagGrid("PAYPALISHIRING", 4))