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

資訊專(zhuān)欄INFORMATION COLUMN

python LeetCode 6.Z字變換

lentrue / 1806人閱讀

摘要:將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下從左到右進(jìn)行字形排列。請(qǐng)你實(shí)現(xiàn)這個(gè)將字符串進(jìn)行指定行數(shù)變換的函數(shù)示例輸入輸出示例輸入輸出解釋題解找出規(guī)律然后按行讀取,不斷的獲取同行下一個(gè)元素在整個(gè)字符串上的位置。

將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進(jìn)行?Z 字形排列。

比如輸入字符串為 "LEETCODEISHIRING"?行數(shù)為 3 時(shí),排列如下:

L C I R
E T O E S I I G
E D H N
之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個(gè)新的字符串,比如:"LCIRETOESIIGEDHN"。

請(qǐng)你實(shí)現(xiàn)這個(gè)將字符串進(jìn)行指定行數(shù)變換的函數(shù):

string convert(string s, int numRows);
示例?1:

輸入: s = "LEETCODEISHIRING", numRows = 3
輸出: "LCIRETOESIIGEDHN"
示例?2:

輸入: s = "LEETCODEISHIRING", numRows =?4
輸出:?"LDREOEIIECIHNTSG"
解釋:

L D R
E O E I I
E C I H N
T S G

題解 找出規(guī)律 然后按行讀取 , 不斷的獲取同行下一個(gè)元素 在整個(gè)字符串上的位置。
class Solution(object):
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        strLen = len(s)
        res = ""
        if strLen <= 1 or numRows == 1 :
            return s
        #規(guī)律 逐行讀取
        cycleLen = 2 * numRows - 2 
        for i in range( 0 ,numRows): #循環(huán)行
            for j in range( 0 , strLen - i , cycleLen ):#第幾個(gè)
                res += s[j+i]  
                if i != 0 and i != numRows -1 and j + cycleLen - i < strLen :
                    #首行尾行沒(méi)有中間值 ,個(gè)數(shù)夠 ,有中間值.
                    res += s[j + cycleLen - i ]
        
        return res
官方優(yōu)解 每一行都創(chuàng)建一個(gè)字符串,找出規(guī)律 對(duì)于每一個(gè)循環(huán)內(nèi)部都不外乎0到numRows行 對(duì)每個(gè)元素添加到相應(yīng)的行中即可
class Solution(object):
    def convert(self, s, numRows):
        """
        :type s: str
        :type numRows: int
        :rtype: str
        """
        if numRows == 1:
            return s
        s_rows = [""] * numRows
        s_len = len(s)
        loop_len = 2*numRows-2
        for i in range(s_len):
            ref_num = i % loop_len
            if ref_num >= numRows:
                ref_num = 2*numRows-ref_num-2
            s_rows[ref_num]+=s[i]
        return "".join(s_rows)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/45226.html

相關(guān)文章

  • LeetCode.6 Z 變換(zigzag-conversion)(JS)

    摘要:看到這道題總覺(jué)得眼熟,做完之后恍然大悟,這不就是小學(xué)數(shù)學(xué)做的找規(guī)律一題目字形變換將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下從左到右進(jìn)行字形排列。一當(dāng)然是因?yàn)樽罱鼘?shí)在太忙了捂臉,幾乎周周誰(shuí)遭得住。 看到這道題總覺(jué)得眼熟,做完之后恍然大悟,這不就是小學(xué)數(shù)學(xué)做的找規(guī)律 一、題目 Z 字形變換: 將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進(jìn)行 Z 字形排列。比如輸入字符串為 LEET...

    cheukyin 評(píng)論0 收藏0
  • 6-9月技術(shù)文章匯總

    摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無(wú)狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說(shuō)說(shuō)你常用的命令為什么要有包裝類(lèi)面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...

    miya 評(píng)論0 收藏0
  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • LeetCode6.Z變換 JavaScript

    摘要:字形變換將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下從左到右進(jìn)行字形排列。請(qǐng)你實(shí)現(xiàn)這個(gè)將字符串進(jìn)行指定行數(shù)變換的函數(shù)示例輸入輸出示例輸入輸出解釋答案參考 LeetCode6.Z字形變換 JavaScript 將一個(gè)給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進(jìn)行 Z 字形排列。比如輸入字符串為 LEETCODEISHIRING 行數(shù)為 3 時(shí),排列如下: L C I R E...

    tuniutech 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<