摘要:題目解題方法以這樣的方式畫出更方便看出它的規(guī)律。當(dāng)?shù)臅r(shí)候,第一行和最后一行每次都是可以設(shè)一個(gè)再來看,中間的行數(shù)除了第一行和最后一行,跳的規(guī)律發(fā)生變化,其實(shí)每次還是存在,只不過中間多了一些。
題目:ZigZag Conversion
解題方法:
以這樣的方式畫出String更方便看出它的規(guī)律。
1 當(dāng)numRows = 4的時(shí)候,第一行和最后一行position每次都是+6.
可以設(shè)一個(gè) magicNum = 2 * numRows - 2;
2 再來看,中間的行數(shù)(除了第一行和最后一行), position 跳的規(guī)律發(fā)生變化,其實(shí)每次+6(magicNum) 還是存在,只不過中間多了一些char。
規(guī)律: 設(shè)一個(gè) specialNum = magicNum;
行數(shù)每增加一行, specialNum - 2;
每次加完一個(gè)char,再加一次char(position=i+specialNum)
舉例:
第二行的時(shí)候, magicNum = 6; specialNum = 4;
1- Position = 1, A, 加入A.
額外加入(Position + specialNum = 1 + 4 = 5), L, 加入L.
2- Position = Position + magicNum = 1 + 6 = 7, S, 加入S.
額外加入(Position + specialNum = 7 + 4 = 11), I, 加入I.
3- Position = Position + magicNum = 7 + 6 = 13, G, 加入G.
所以第二行加入的是: ALSIG.
代碼:
public class Solution { public String convert(String s, int numRows) { if( s == null || s.length() == 0 || numRows <0) return ""; if(numRows == 1) return s; StringBuilder res = new StringBuilder(); int magicNum = 2*numRows-2; int specialNum = magicNum; for(int i=0; i0 && i
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/65005.html
摘要:要求我們?cè)谥中沃匦屡帕羞@個(gè)字符串后,再按正常的從上到下,從左至右的順序輸出拼接好的字符串。因此對(duì)于每一個(gè)字符,我們判斷它應(yīng)該在哪一行,然后將它加到它所在行的字符序列的尾部。最后我們合并每一行,獲得最后的結(jié)果。 題目詳情 The string PAYPALISHIRING is written in a zigzag pattern on a given number of rows ...
摘要:給一個(gè)要求按豎字方法去排列再橫向讀出,給定行數(shù)。若則程序輸出應(yīng)為若程序輸出應(yīng)為分析找規(guī)律,將每行當(dāng)作一個(gè)研究對(duì)象,找出每個(gè)字母在原字符串中的代數(shù)規(guī)律。若文章中有錯(cuò)誤或者各路大神有更好解法,歡迎評(píng)論。 給一個(gè)String: PAYPALISHIRING 要求按豎Z字方法去排列再橫向讀出,給定行數(shù)R。 若 R = 3: P A H N A P L S I I G Y I ...
摘要:看到這道題總覺得眼熟,做完之后恍然大悟,這不就是小學(xué)數(shù)學(xué)做的找規(guī)律一題目字形變換將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下從左到右進(jìn)行字形排列。一當(dāng)然是因?yàn)樽罱鼘?shí)在太忙了捂臉,幾乎周周誰遭得住。 看到這道題總覺得眼熟,做完之后恍然大悟,這不就是小學(xué)數(shù)學(xué)做的找規(guī)律 一、題目 Z 字形變換: 將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進(jìn)行 Z 字形排列。比如輸入字符串為 LEET...
摘要:很奇葩的題目,先將轉(zhuǎn)化為字符數(shù)組,便于操作。再看要求轉(zhuǎn)化為多少行,就建立多大的數(shù)組。 Problem The string PAYPALISHIRING is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed ...
摘要:題目題目解釋假設(shè)我們輸入的就是上面的字符串在取不同值的時(shí)候大家看我用做的簡(jiǎn)易的圖看完圖應(yīng)該就明白了這個(gè)題目到底是什么意思這個(gè)題的難點(diǎn)在于找規(guī)律只要找到了規(guī)律解決這個(gè)題并不難規(guī)律如下第一行或者最后一行元素之間的間隔為中間部分間隔分別是依 題目 The string PAYPALISHIRING is written in a zigzag pattern on a given n...
閱讀 2562·2023-04-25 18:13
閱讀 770·2021-11-22 12:10
閱讀 2970·2021-11-22 11:57
閱讀 2138·2021-11-19 11:26
閱讀 2164·2021-09-22 15:40
閱讀 1460·2021-09-03 10:28
閱讀 2704·2019-08-30 15:53
閱讀 1950·2019-08-30 15:44