leecode刷題 Z 字形變換

2021-10-05 03:09:41 字數 660 閱讀 7181

將乙個給定字串根據給定的行數,以從上往下、從左到右進行 z 字形排列。

比如輸入字串為 "leetcodeishiring" 行數為 3 時,排列如下:

l   c   i   r

e t o e s i i g

e   d   h   n

之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如:"lciretoesiigedhn"。

**實現:

class solution 

//先拆分字串

size_t i = 0;

size_t nsize = s.length();

for (; i <= nsize; i+= nvnum)

}//合併字串

for (int i = 0; i < numrows; ++i)

size_t nindex = numrows * 2 - 2 - i;

if (nindex < nvsize && nindex >= numrows) //放入斜列上的值

}con.insert(con.end(), tmpstr.begin(), tmpstr.end());

} return con;

}};

看了下官方解答,**存在很大的優化空間=、=

leecode刷題學習 06 Z字形變換

解讀本題第一想法肯定是遍歷陣列,但是如何控制陣列向下走和向前走是問題所在關鍵。這裡我們將每一行看作乙個rows i rows 是乙個字串陣列 圖中為例項答案,是乙個rows 4 的陣列,rows 0 ldr,rows 1 eoeii,根據上圖,我們已得知解題思路,但是難以控制的是空格字元如何判斷。這...

每日刷題 Z 字形變換

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

LeeCode筆記 6 Z字形變換

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