將乙個給定字串根據給定的行數,以從上往下、從左到右進行 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);
輸入: s = "leetcodeishiring", numrows = 3
輸出: "lciretoesiigedhn"
輸入: s = "leetcodeishiring", numrows = 4
輸出: "ldreoeiiecihntsg"
解釋:l d r
e o e i i
e c i h n
t s g
一開始思路被限制了,想著通過座標計算得到最終結果,無奈規律實在太難找了,後面又想著用二維陣列解題,但是想著又發現空間複雜度太大了,後來看了下官方的解題思路,才恍然大悟,之前的思路一直圍繞在一次性求出結果字串,實際上先按行或者按列求出每行每列,再拼接,這道題就會特別簡單,我這裡採用先求每行再拼接的思路,**如下:
public string convert
(string s,
int numrows)
stringbuilder res =
newstringbuilder()
; temp.
foreach
(res:
;return res.
tostring()
;}
6 Z字形變換
一 題目 將字串 paypalishiring 以z字形排列成給定的行數 p a h n a p l s i i g y i r之後從左往右,逐行讀取字元 pahnaplsiigyir 實現乙個將字串進行指定行數變換的函式 string convert string s,int numrows 示例...
6 Z字形變換
將字串 paypalishiring 以z字形排列成給定的行數 p a h n a p l s i i g y i r 之後從左往右,逐行讀取字元 pahnaplsiigyir 示例1 輸入 s paypalishiring numrows 3 輸出 pahnaplsiigyir 示例 2 輸入 s...
6 Z 字形變換
將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiigedh...