6 Z字形變換

2022-02-18 09:54:32 字數 755 閱讀 3409

思路:1.首先要有乙個列表rows儲存所有的資料,列表裡每乙個元素代表題中的一行,每一行裡面的元素都是不斷往裡面加進去的,不是初始化好的。所以列表的每個元素,也就是每一行,應該用stringbuilder。按照題意rows總共numrows行,下標是0到numrows-1

2.其次,在邊界處如何處理?如題意,假如總共4行,也就是numrows=4。從第乙個字元開始,把每乙個字元放到rows列表的其中一層,第乙個字元第一層,第二個字元第二層。。。行數是遞增的。rows總共應該有4層。到第四層時,該轉向了,第五個元素,應該放到第3層裡。之後第六個在第二層。。。到了行數為1時,又該轉為行數遞增了。。。所以,用flag表示當前行數遞增還是遞減,flag為1或者-1.

class solution {

public string convert(string s, int numrows) {

if(numrows==1)return s;

int flag=-1;//表示行的趨勢,是增加還是減少

int j=0;

listrows=new arraylist<>();//這個列表存放所有的資料,每個列表元素代表一行,總共numrows行

for(int i=0;i我的部落格裡還有arraylist的用法介紹,雖然是**的。。。還有stringbuilder的介紹。要是看不懂一些用法,可以看看。

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...