6_Z字型變換

1、題目
將一個給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進(jìn)行 Z 字形排列。
比如輸入字符串為 "PAYPALISHIRING" 行數(shù)為 3 時,排列如下:
P A H N
A P L S I I G
Y I R
之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個新的字符串,比如:"PAHNAPLSIIGYIR"。
2、代碼

        def convert(self, s, numRows):
            """
            (1)V字型循環(huán),周期為n=(2*numRows-1)(2倍行數(shù) - 頭尾2個)。
            (2)對于字符串索引值 i,計(jì)算 x = i % n 確定在循環(huán)周期中的位置。
            (3)則行號 y= min(x, n - x)。
            """
            if numRows == 1:
                return s
            rows = [""] * (numRows)
            n = 2 * numRows - 2
            for i in range(0, len(s)):
                x = i % n
                print("i:", i, "n:", n, "x:", x)
                rows[min(x, n - x)] += s[i]
            return "".join(rows)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 模擬題 題目描述 將一個給定字符串 s 根據(jù)給定的行數(shù) numRows,以從上往下、從左到右進(jìn)行 Z 字型排列。 ...
    風(fēng)海銅鑼君閱讀 322評論 0 1
  • 一個給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進(jìn)行 Z 字形排列。 比如輸入字符串為 ...
    萌多多指教閱讀 220評論 0 1
  • 一、題目描述 將一個給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進(jìn)行 Z 字形排列。 比...
    leepan1024閱讀 270評論 0 1
  • 題意 將一個給定字符串 s 根據(jù)給定的行數(shù) numRows ,以從上往下、從左到右進(jìn)行 Z 字形排列。 比如輸入字...
    ST_碼閱讀 240評論 0 0
  • 6. Z 字形變換[https://leetcode-cn.com/problems/zigzag-convers...
    程序員小2閱讀 315評論 0 1

友情鏈接更多精彩內(nèi)容