Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 872 Bytes

2023-02-03.md

File metadata and controls

40 lines (34 loc) · 872 Bytes

题目

  1. Zigzag Conversion

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)

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:

string convert(string s, int numRows);

思路

代码

// runtime 90.76% memory 77.58%
var convert = function(s, numRows) {
  if (numRows == 1) {
    return s
  }
  let res = ''
  for (let i = 0; i < numRows; i++) {
    for (let j = i; j < s.length; j += (numRows - 1) * 2) {
      res += s[j]
      const next = j + (numRows - 1 - i) * 2
      if (i % (numRows - 1) != 0 && next < s.length) {
        res += s[next]
      }
    }
  }
  return res
}