Leetcode JS/TS 6.z-字形變換.js

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

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

之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個新的字符串,比如:"LCIRETOESIIGEDHN"。

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

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

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

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

/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */

var convert = function(s, numRows) {
    if (numRows == 1) {
        return s;
    }
    let arrs = [], i
    for(i = 0; i < numRows; i++) {
        arrs[i] = "";
    }

    var pos = 0, flag = 1; //pos為寸到哪一行的字符串,flag控制方向
    for(i = 0; i < s.length; i++) {

        arrs[pos] += s.charAt(i);
        if (pos + flag < 0 || pos + flag >= numRows) {//越界變向
            flag = -flag;
        }
        pos += flag
    }
    var str = ""
    for(i = 0; i < numRows; i++) {
        str += arrs[i];
    }
    return str;
};

思路:


image.png

將字符存入對應(yīng)的數(shù)組,最后拼接即可

————————
想要學(xué)習(xí)Cocos的同學(xué),歡迎關(guān)注我的零基礎(chǔ)Cocos教程
https://ke.qq.com/course/313749

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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