美文网首页
[6kyu]Grill it!

[6kyu]Grill it!

作者: 君肄塵 | 来源:发表于2017-07-07 15:32 被阅读10次

该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~


  • 介绍

格栅密码是通过将纸张透过穿孔的纸张(纸或纸板或类似物)写入一张纸来加密明文的技术。这种加密方法最早出现在1550年的Girolamo Cardano的聚会上。他的建议是使用一个矩形模板,其中允许单个字母,音节或单词被写入,然后通过其各种穿孔的纸张读取。明文的书面片段可以进一步伪装,通过用无止尽的单词或字母填充片段之间的空白。这也是隐写术的变种之一,许多格栅密码都是是如此。

  • 任务
  • 写一个函数接收两个参数(message,code),并返回从message中解密出隐藏信息。
  • 例如:
    grille("abcdef", 5) => "df"
  message : abcdef
    code    : 000101
    ----------------
    result  : df

  • 解答
  • 其一
const grille = (message, code) => {
      let binary = (code).toString(2);
      let decode = binary.length < message.length ? '0'.repeat(message.length-binary.length) + binary : binary.substr(-message.length); 
      let str = '';
      if (message){  
        for(let i=0;i<[...decode].length;i++){
          if(~~[...decode][i]) {
            str += [...message][i];
          }
        }
      }
      return str;
}
  • 其二
function grille(message, code) {
      var binary = code.toString(2).split("");
      var input = message.split("");   
      var output = [];   
      while (binary.length > 0){
        var char = binary.pop();
        if (char == 1) output.push(input.pop());
          else input.pop();
      }   
      return output.reverse().join("") 
}
  • 其三
function grille(message, code) {
      const mask = ('0'.repeat(message.length)+code.toString(2)).slice(-message.length);
      return [...message].filter((c,i)=>+mask[i]).join('');
}
  • 其四
function grille(message, code) {
      var s =""
      var cy = code.toString(2).split("").reverse()
      return message.split("").reverse().filter((a,i) =>cy[i]=="1").reverse().join("")
}
  • 其五
const grille = (s,n) => [].reduceRight.call( s, (acc,v) => ( n&1 && ( acc=v+acc, n-=1 ), n/=2, acc ), "" ) ;

相关文章

  • [6kyu]Grill it!

    该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~ 介绍 格栅密码是通过将...

  • GRILL

    我们继续下着棋 不时将新的士兵带入沙场 等他们历练好了 一副千军万马的架势 有些剑拔弩张的气氛 我们再将他们拖拽出...

  • 【经济】虐心卷饼店@崔冕

    the Chipotle Mexican Grill are facing challenges:1,the CD...

  • @Fish Grill

    这家烤鱼店,在Marketplace,开了有一年多了。 自制柠檬苏打水 二兄弟在餐前,玩手机游戏。 Wild Si...

  • 新西兰(美食)

    ️Burger Burger ️Depot ️The Grill by Sean Connolly ️Kiwi E...

  • The Office-S02E12

    grill 烤架 sue me :Interjection. Phrase sarcastically used ...

  • 火锅文案英语翻译

    Three years ~Aili Xinjiang grill +Old Beijing hot pot has...

  • Kuchai Lama RM9.90 「Grill Chicke

    【一份只需RM9.90】Kuchai Lama 超丰富「Grill Chicken Chop」!3种Sauce任选...

  • 出个BBQ Grill;Allston自取

    帮房东出个BBQ Grill,除了上任住户用了几次以外再没用过。具体如图,需Allston自取。

  • [6kyu]FizzBuzz++

    该算法题来自于 codewars【语言: javascript】,翻译如有误差,敬请谅解~ 相关题型 [7kyu]...

网友评论

      本文标题:[6kyu]Grill it!

      本文链接:https://www.haomeiwen.com/subject/pualhxtx.html