首页 > 网站 > WEB开发 > 正文

CodeWars 打怪升级.

2024-04-27 14:10:48
字体:
来源:转载
供稿:网友

CodeWars 打怪升级.

本人是渣渣,所以常逛各大学习站点,如:博客园,知乎,csdn,w3cfunc,segmentfault!!

今天在segmentfault,发现一个外国站点,CodeWars里面有很多经典题目广大coder提出解决方法相互取经,然后打怪升级(解决题目)。

有如下题目:

创造一个函数,返回如下这么个玩意,参数是圣诞树的高度,为0-100的整数,空白都需要space填充。

    *       ***     *****   ******* *********我给出的答案是:
for(var i=1; i<=9; i+=2){        var chr="";        var space=""        for(var k=1;k<=i;k++){ chr+="*";}        var number=(9-i)/2;         for(var j=0;j<number;j++){ space+=" "}        console.log(space+chr+space);    }

然后是老外给出的答案,相比之下惨不忍睹,不过我是菜鸟有待进步还是能接受的,哈哈

function christmasTree(height,shift) {  var shift=shift||0, spaces=new Array(shift+1).join(' ');  return height>0?(height>1?christmasTree(height-1,shift+1)+'/n':'')+spaces+new Array(2*height).join('*')+spaces:'';}

function christmasTree(height) {  var tree = [];  for (var i = 1; i <= height; i++) {    var s = "";    for (var j = 0; j < height-i; j++) s += " ";    for (var j = 0; j < i*2-1; j++) s += "*";    for (var j = 0; j < height-i; j++) s += " ";    tree.push(s);  }  return tree.join("/n");}

然后众多coder会投票,选出代码最优,性能最好的方案.

当我看到这道题目的第一名时,彻底凌乱了,出了一口恶气啊. 哈哈

          c=        function      (h){t=[];for     (i=1;i<=h;++i,    t.push(b))for(b=   '',j=0;j<2*h-1;++j  )b+=j>=h-i&&j<h+i-1? '*':' ';return t.join('/n')};this['christmas'+       'Tre'+       'e']=c

CodeWars

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表