Z字形變換

2021-10-06 02:59:15 字數 964 閱讀 6422

z字形變換

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

我的**:

class solution {

public:

string convert(string s, int numrows) {

if(numrows==1) //若只有一行,變換前後相同,直接返回原字串

return s;

int row=0; //記錄當前行數

string z[numrows]; //儲存每一行的字元

int flag=0; //判斷行應該向上還是向下

char c;

for(int i=0;i處理這道題,最簡單的想法就是按照z字形的生成順序,建立二維陣列,存進去,然後按行讀出來。但實際上並不需要那麼麻煩,因為這道題最後返回的是按最後z字形的行拼接起來的字串。所以我們可以直接在生成z的時候,就把每個字元放到它在z字形裡的對應行中,最後拼接起來,返回。

Z字形變換

題目 將字串 paypalishiring 以z字形排列成給定的行數 p a h n a p l s i i g y i r 之後從左往右,逐行讀取字元 pahnaplsiigyir 思路 通過從左向右迭代字串,我們可以輕鬆地確定字元位於 z 字形圖案中的哪一行。演算法 我們可以使用 min num...

Z 字形變換

將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。輸入 s leetcodeishiring numrows 4 輸出 ldreoeiiecihntsg l d r e o e i i e c i h n t s g 注釋思路 class solution 有了列數和行數,總個數...

Z 字形變換

將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiigedh...