Z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。

function convert(s, numRows) {
    if(numRows == 1){
        return s
    }
    let arr = []
    for(let i = 0;i < s.length;i++){
        let subArr = new Array(numRows)
        let item = s[i]
        if(arr.length % (numRows - 1) == 0){
            for(let j = 0;j < numRows;j++){
                subArr[j] = s[i + j]
            }
            i += (numRows - 1)
            arr.push(subArr)
        }else{
            subArr[numRows - arr.length % (numRows - 1) - 1] = item
            arr.push(subArr)
        }
    }
    let str = ''
    for(let i = 0;i < numRows;i++){
        for(let j = 0;j < arr.length;j++){
            str +=  arr[j][i] ? arr[j][i] : ''  
        }
    }
    return str
}

Leecode提交通过

posted @ 2020-06-21 19:14  671_MrSix  阅读(139)  评论(0编辑  收藏  举报