返回zigzag后的字符串(leetcode题)

 

先找出不变部分,从上到下时,全部增加,每次在向上遍历时,跳过最后一行和第一行。

 

 

function convert(str,count){
    res={}
    
    for (let j =0; j<count;j++){
        res[j] =''
    }
    //跳过不一致的地方,向下的时候,不跳过任何,向上的时候,跳过最后一个和第一个。
    let sl = str.length;
    let k=0;
    while(k<sl){
        //正序
        console.log("str[k]",str[k])
        for(let idx=0;idx <count && k<sl;idx++){
            res[idx] += str[k++]
        }
        //倒叙,避开最后一行和第一行
        for(let j=count-2;j>0 && k<sl;j--){
            res[j]+= str[k++]
        }
    }
    let ret ='';

    for (let key in res){
        ret = ret + res[key]
    }
    

    return ret

}

convert("paypalishiring",3)

 

posted @ 2020-02-22 16:10  Esther_Cheung  阅读(163)  评论(0)    收藏  举报