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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM