Leetcode 6 Z 字形變換

2021-10-04 11:50:51 字數 565 閱讀 8237

其實根據題目的意思, 換成 n 字形更為貼切. 按照給定的行數來, 比如行數為 4, 那麼對應到給的圖中, 每個字元所在的行號為 

0 1 2 3 2 1 0 ... 0 1 2 3 2 1 0 就一直保持這個規律繼續下去. 這個思路我是想出來, 但是並沒有想好如何模擬出這個變化的過程. 然後看了一下大佬的題解, 學習一下 : 分析一下這個過程, 當到達 0 這個最小值, 後面就變成加 1, 當到達 3 這個最大值, 後面就變成減 1. 

class solution 

int i = 0, flag = -1;

for(char c : s.tochararray())

stringbuilder res = new stringbuilder();

for(stringbuilder sb : list)

return res.tostring();

}}

注意上面 flag 的初值為 -1, 因為將最大值和最小值時變化過程統一了, 所以初值為 -1, 就變化為 + 1.

本題的思路不難, 就是這個變化過程值得記錄一下. 

LeetCode 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 輸入 s pa...

leetcode 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 示例 1 輸入...

LeetCode 6 Z字形變換

把整個問題拆解為 儲存 取 的兩個過程 通過觀察我發現的是,當numrows為3時,兩列之間的數字的數目為1 當numrows為4時,兩列之間的數字的數目為2,以此類推。那麼,可不可以將每一列都存起來 col 兩列之間的數字也存起來 gap 最後要輸出時再通過遍歷的方式拼接出結果呢?以題目中給的字串...