説明
所与の行に従って指定した文字列の数は、ダウンに、Z型配置から左。
例えば、入力された文字列は次のように三列「LEETCODEISHIRING」が配置されている:
L C I R&LT
E T O E S I I G
E D H N
「LCIRETOESIIGEDHN」:あなたの出力線で左から右に、リード線に必要後、などの新しい文字列を生成します。
:あなたは、この文字列変換関数は行数を指定し実現します
。(S文字列、int型のnumRowsの数)の文字列変換を
例1
入力:S = "LEETCODEISHIRING"、numRowsの数 = 3
出力: "LCIRETOESIIGEDHN"
例2
入力:S = "LEETCODEISHIRING"、numRowsの数 = 4
出力: "LDREOEIIECIHNTSG"
説明:
LT L D R&
E OE I I
I C H N E
T G S
答え
var convert = function(s, numRows) {
let arr = []
let j = 0
for(let i = 0; i < numRows; i++){
arr[i] = ''
}
for(let n of s){
j = j >= 2 * (numRows - 1) ? (j - 2 * (numRows - 1)) : j
let k = j > (numRows - 1) ? 2 * (numRows - 1) - j : j
arr[k] += n
j++
}
return numRows === 1 ? s : arr.join('')
};
分析
時間計算量:O(n)は、空間的複雑:O(N)