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