6 Z 字形變換(技巧題)

2021-10-09 02:23:13 字數 1008 閱讀 8225

將乙個給定字串根據給定的行數,以從上往下、從左到右進行 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...