国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LeetCode] ZigZag Conversion

TIGERB / 2106人閱讀

摘要:很奇葩的題目,先將轉化為字符數組,便于操作。再看要求轉化為多少行,就建立多大的數組。

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 font for better legibility)

P   A   H   N
A P L S I I G
Y   I   R

And then read line by line: "PAHNAPLSIIGYIR"
Write the code that will take a string and make this conversion given a number of rows:

string convert(string text, int nRows);

convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".

Note

很奇葩的題目,PAYPAL IS HIRING.
先將s轉化為字符數組c,便于操作。
再看nRows要求轉化為多少行,就建立多大的StringBuilder數組sb[]。注意,建立完之后要用for循環對每一個StringBuilder[i]初始化:sb[i] = new StringBuilder();
然后用指針i循環字符數組c:順序從0到nRows-1每一行放入一個字符c[i++],然后逆序從nRows-2到1每一行放入一個字符c[i++],直到i == c.length.
以上就將豎向ZigZag形式的字符串以橫向讀取順序存入了數組sb中,將sb[i]中的所有字符串都合并到sb[0]中即可。

Solution
public class Solution {
    public String convert(String s, int nRows) {
        char[] c = s.toCharArray();
        int len = c.length;
        StringBuffer[] sb = new StringBuffer[nRows];
        for (int i = 0; i < sb.length; i++) sb[i] = new StringBuffer();
    
        int i = 0;
        while (i < len) {
            for (int idx = 0; idx < nRows && i < len; idx++) // vertically down
                sb[idx].append(c[i++]);
            for (int idx = nRows-2; idx >= 1 && i < len; idx--) // obliquely up
                sb[idx].append(c[i++]);
        }
        for (int idx = 1; idx < sb.length; idx++)
            sb[0].append(sb[idx]);
        return sb[0].toString();
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64785.html

相關文章

  • ZigZag Conversion - LeetCode JavaScript

    摘要:題目題目解釋假設我們輸入的就是上面的字符串在取不同值的時候大家看我用做的簡易的圖看完圖應該就明白了這個題目到底是什么意思這個題的難點在于找規律只要找到了規律解決這個題并不難規律如下第一行或者最后一行元素之間的間隔為中間部分間隔分別是依 題目 The string PAYPALISHIRING is written in a zigzag pattern on a given n...

    G9YH 評論0 收藏0
  • leetcode 6 ZigZag Conversion

    摘要:要求我們在之字形重新排列這個字符串后,再按正常的從上到下,從左至右的順序輸出拼接好的字符串。因此對于每一個字符,我們判斷它應該在哪一行,然后將它加到它所在行的字符序列的尾部。最后我們合并每一行,獲得最后的結果。 題目詳情 The string PAYPALISHIRING is written in a zigzag pattern on a given number of rows ...

    Dr_Noooo 評論0 收藏0
  • LeetCode_String #6. ZigZag Conversion (Easy)

    摘要:題目解題方法以這樣的方式畫出更方便看出它的規律。當的時候,第一行和最后一行每次都是可以設一個再來看,中間的行數除了第一行和最后一行,跳的規律發生變化,其實每次還是存在,只不過中間多了一些。 題目:ZigZag Conversion showImg(/img/bVz1DU); 解題方法: showImg(/img/bVz1Eb); 以這樣的方式畫出String更方便看出它的規律。 1 當...

    Corwien 評論0 收藏0
  • LeetCode 6: ZigZag Conversion (JAVA)

    摘要:給一個要求按豎字方法去排列再橫向讀出,給定行數。若則程序輸出應為若程序輸出應為分析找規律,將每行當作一個研究對象,找出每個字母在原字符串中的代數規律。若文章中有錯誤或者各路大神有更好解法,歡迎評論。 給一個String: PAYPALISHIRING 要求按豎Z字方法去排列再橫向讀出,給定行數R。 若 R = 3: P A H N A P L S I I G Y I ...

    csRyan 評論0 收藏0
  • LeetCode.6 Z 字形變換(zigzag-conversion)(JS)

    摘要:看到這道題總覺得眼熟,做完之后恍然大悟,這不就是小學數學做的找規律一題目字形變換將一個給定字符串根據給定的行數,以從上往下從左到右進行字形排列。一當然是因為最近實在太忙了捂臉,幾乎周周誰遭得住。 看到這道題總覺得眼熟,做完之后恍然大悟,這不就是小學數學做的找規律 一、題目 Z 字形變換: 將一個給定字符串根據給定的行數,以從上往下、從左到右進行 Z 字形排列。比如輸入字符串為 LEET...

    cheukyin 評論0 收藏0

發表評論

0條評論

TIGERB

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<