題目:
將乙個給定字串根據給定的行數,以從上往下、從左到右進行 z 字形排列。
比如輸入字串為 "leetcodeishiring" 行數為 3 時,排列如下:
l c i r
e t o e s i i g
e d h n
之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如:"lciretoesiigedhn"。
請你實現這個將字串進行指定行數變換的函式:
string convert(string s, int numrows);
示例 1:
輸入: s = "leetcodeishiring", numrows = 3
輸出: "lciretoesiigedhn"
示例 2:
輸入: s = "leetcodeishiring", numrows = 4
輸出: "ldreoeiiecihntsg"
解釋:l d r
e o e i i
e c i h n
t s g
/** * @param s
* @param numrows
* @return */
var convert = function
(s, numrows)
let str = new
array();
for(let i=0;i)
let index =0;
let flag = -1;
let j=0;
while(indexj +=flag;//將資料進行反向,也就是s[index]中元素下一次應該連線到的元素索引值
}return str.join("")
};
實現方式:主要是通過乙個flag轉換方向以及利用陣列,將字串遍歷放到對應的陣列之中,最後將陣列進行合併lc
iret
oesi
iged
hn可以看出其是一行一行的輸出,即將行索引相同的元素放置在同乙個字串中進行連線,最後將整個陣列連線就可以了。
N 字形變換
n 字形變換 user hihone date 2019 2 1 time 14 26 description 將乙個給定字串根據給定的行數,以從上往下 從左到右進行 n 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i...
LeedCode刷題筆記 Z字形變化
將乙個給定字串 s 根據給定的行數 numrows 以從上往下 從左到右進行 z 字形排列。比如輸入字串為 paypalishiring 行數為 3 時,排列如下 p a h n a p l s i i g y i r 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 pahnaplsi...
Z字形變換
題目 將字串 paypalishiring 以z字形排列成給定的行數 p a h n a p l s i i g y i r 之後從左往右,逐行讀取字元 pahnaplsiigyir 思路 通過從左向右迭代字串,我們可以輕鬆地確定字元位於 z 字形圖案中的哪一行。演算法 我們可以使用 min num...