-
[Leetcode] 6. Zigzag Conversion TypescriptAlgorithm 2022. 8. 25. 14:23728x90
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);
Example 1:
Input: s = "PAYPALISHIRING", numRows = 3 Output: "PAHNAPLSIIGYIR"
Example 2:
Input: s = "PAYPALISHIRING", numRows = 4 Output: "PINALSIGYAHRPI" Explanation: P I N A L S I G Y A H R P I
Example 3:
Input: s = "A", numRows = 1 Output: "A"
Constraints:
- 1 <= s.length <= 1000
- s consists of English letters (lower-case and upper-case), ',' and '.'.
- 1 <= numRows <= 1000
문자열이 특정 사이클((numRows - 1) * 2) 주기로 반복됨
function convert(s: string, numRows: number): string { if (s.length < numRows || s.length < 2 || numRows < 2) { return s; } const result = new Array(numRows).fill(''); const cycle = (numRows - 1) * 2; s.split('').forEach((value, index) => { const rest = index % cycle; const arrayIndex = rest < numRows ? rest : cycle - rest; result[arrayIndex] += value; }); return result.join(''); }
728x90'Algorithm' 카테고리의 다른 글
[Leetcode] 8. String To Integer(atoi) Typescript (0) 2023.01.24 [Leetcode] 7. Reverse Integer Typescript (0) 2022.08.25 [Leetcode] 5. Longest palindromic substring (Typescript) (0) 2022.02.01 [leetcode] 4. Median of Two Sorted Arrays (Typescript) (0) 2021.02.21 [leetcode] 3. Longest Substring Without Repeating Characters (Typescript) (0) 2021.02.20