LeetCode-006-Z 字形變換

題目描述:將一個給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進行 Z 字形排列。
比如輸入字符串為 "PAYPALISHIRING" 行數(shù)為 3 時,排列如下:
P ? A ? H ? N?
A P L S I I G?
Y ? I ? R?
之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個新的字符串,比如:"PAHNAPLSIIGYIR"。
string convert(string s, int numRows);
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/zigzag-conversion/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:遍歷
首先要判斷當字符串的長度為空或者小于3的時候或numRows為1(即全部平鋪在一行)時,直接返回字符串。否則,遍歷字符串的字符,并用一個二維boolean數(shù)組標記,分2步,首先往下走,走不動了,再往右斜線走,重復這2步,直到把所有的字符都記錄到,根據(jù)boolean數(shù)組的標記,返回結(jié)果。
標簽: