zoukankan      html  css  js  c++  java
  • 【Codewars】Rail Fence Cipher: Encoding and Decoding

    题目地址:https://www.codewars.com/kata/58c5577d61aefcf3ff000081/train/javascript

    *需要注意的一点:当rail=3的时候每次都是跨固定的距离,但如果用4就会发现不一样。

    const encodeRailFenceCipher=(str,num)=>{
        const arr=str.split('');
        const len=arr.length;
        const resultArr=[];
        const maxGap=(num-2)*2+2;
        for(var i=0;i<num;i++){
            var initialInterval;
            if(i===0||i===num-1){
                initialInterval=maxGap;
            }else{
                initialInterval=maxGap-i*2;
            }
            var tempInterval=initialInterval;
            var k=i;
            do{
                resultArr.push(arr[k]);
                k=k+tempInterval;
                if(i!==0&&i!==num-1){
                    tempInterval=maxGap-tempInterval;
                }
            }while(k<len);
        }
        return resultArr.join('');
    }
    
    const decodeRailFenceCipher=(str,num)=>{
        let index=0;
        const maxGap=(num-2)*2+2;
        const arr=str.split('');
        const len=arr.length;
        const res=[];
        for(var i=0;i<num;i++){
           let initialInterval=maxGap-2*i;
            if(i===num-1){
                initialInterval=maxGap;
            } 
            var tempInterval=initialInterval;
            var k=i;
            do{
                if(index<len){
                    res[k]=arr[index];
                    index++;
                    k=k+tempInterval;
                    if(i!==0&&i!==num-1){
                        tempInterval=maxGap-tempInterval;
                    }
                }
            }while(k<len);
        }
        return res.join('');
    }
    
    const givenStr="SFHBJSAKHDEWQIUEHIWQEH";
    const res=encodeRailFenceCipher(givenStr,8);
    const res2=decodeRailFenceCipher(res,8);
    console.log(res);
    
    
  • 相关阅读:
    QtDBus编程详解
    QProcess详解
    python 爬虫 亚航 指定日期间的航线
    python 模块
    centos postgres 安装、远程连接
    python 爬虫 anyproxy
    python_scrapy_filespipe重写
    python_xpath
    常见问题汇总
    python_scrapy_log日志
  • 原文地址:https://www.cnblogs.com/hikki-station/p/15429616.html
Copyright © 2011-2022 走看看