LeetCode 5. Z字形變換

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

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


屏幕快照 2019-01-22 下午3.24.57.png

之后,你的輸出需要從左往右逐行讀取,產(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"
解釋:

屏幕快照 2019-01-22 下午3.25.28.png
解法:首先訪問 行 0 中的所有字符,接著訪問 行 1,然后 行 2,依此類推...對(duì)于所有整數(shù) k,
  • 行 0 中的字符位于索引 k(2?numRows?2)處;
  • 行 numRows?1 中的字符位于索引 k(2?numRows?2)+numRows?1 處;
  • 內(nèi)部的行 i 中的字符位于索引 k(2?numRows?2)+i 以及 (k+1)(2?numRows?2)?i 處;
        guard numRows > 1 else {
            return s
        }
        var newStr : String = ""
        var array = Array(s)
        let n = s.count
        let cycleLen = 2 * numRows - 2
        for i in 0..<numRows{
            var j = 0
            while j + i < n{
                newStr.append(array[j + i])
                if i != 0 && i != numRows - 1 && j + cycleLen - i < n{
                    newStr.append(array[j + cycleLen - i])
                }
                
                j += cycleLen
            }
        }
        return newStr
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 他們的出身讓世人羨慕嫉妒恨,他們的才華讓世人自愧不如,望洋興嘆。他們的容貌堪比宋玉、潘安。似乎他們就是完美的化身。...
    文淵似海閱讀 940評(píng)論 0 3
  • 平凡而樸實(shí)的生活中 充斥了太多的繁瑣 記住的東西洗也洗不掉 挑撥著早已緊繃的大腦 就算是海岸上迎面吹來的晚風(fēng) 以及...
    幽菱寒葉閱讀 185評(píng)論 0 0
  • 而今日子的溫度 在棉衣的裹挾下 想記住手在衣袋中的故事 也想裝滿敘事者的腦袋 講一個(gè)我看得見的模樣 而如今我又接著...
    仨舟閱讀 153評(píng)論 0 2
  • 我感覺到我的眼前正在變得一片漆黑,我唯一的念頭是在暈倒前我要找個(gè)地方讓自己坐下來,免得待會(huì)倒在地上引來大片...
    時(shí)簡(jiǎn)_閱讀 250評(píng)論 0 0
  • 很多東西無論你是主動(dòng)碰撞,或是被動(dòng)經(jīng)歷,舊的錯(cuò)誤的想法總是在不經(jīng)意間就被打破了,只留下無聲地反思與悔悟。 ...
    彭曉嬌你別跑閱讀 307評(píng)論 0 0

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