leetcode-6. Z字形变换

/**
 * @param {string} s
 * @param {number} numRows
 * @return {string}
 */
var convert = function(s, numRows) {
    if(numRows==1){
        return s;
    }
    let chs = [...s];
    let res = [];
    for(let i=0;i<numRows;i++){
        res.push([]);
    }
    let isDown = true;//方向
    let row = 0;
    let col = 0;
    let i = 0;
    while(i<s.length){
        if(isDown){
            res[row].push(chs[i]);
            if(row==numRows-1){
                isDown = !isDown;
                row--;
                col++;
            }else{
                row++;
            }
        }else{
            res[row].push(chs[i]);
            if(row==0){
                isDown = !isDown;
                row++;
            }else{
                row--;
                col++;
            }
        }
        i++;
    }
    return res.map(item=>item.join('')).join('');
};
(()=>{
    let s = 'PAYPALISHIRING';
    s = 'AB';
    let numRows = 1;
    let expectRes = 'PINALSIGYAHRPI';
    let res = convert(s,numRows);
    console.info(res);
})();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值