CodeWars--Build Tower

题目:

Build Tower by the following given argument:
number of floors (integer and always greater than 0).
Tower block is represented as *
Python: return a list;
JavaScript: returns an Array;
C#: returns a string[];
PHP: returns an array;
C++: returns a vector;
Haskell: returns a [String];
Ruby: returns an Array;
Have fun!

例子:

 *[   
     '     *     ',   1
     '    ***    ',   3
     '   *****   ',   5
     '  *******  ',   7
     ' ********* ',   9
     '***********'    11
     ]
     * 

解析题目: 开始的时候想要使用递归的方法进行使循环输出,然后通过正则表达式来进行替换,然而正则学的不太好。。 灵光一闪 想到了一个数组的方法

如下: 采用的是repeat方法~ 机智

function towerBuilder(nFloors) {
  var tower = [];
  for (var i = 0; i < nFloors; i++) {
    tower.push(" ".repeat(nFloors - i - 1)
             + "*".repeat((i * 2)+ 1)
             + " ".repeat(nFloors - i - 1));
  }
  return tower;
}

大佬的代码:

function towerBuilder(n) {
  return Array.from({length: n}, function(v, k) {
    const spaces = ' '.repeat(n - k - 1);
    return spaces + '*'.repeat(k + k + 1) + spaces;
  });
}

再接再励~

发布了35 篇原创文章 · 获赞 2 · 访问量 9828

猜你喜欢

转载自blog.csdn.net/qq_39532595/article/details/86486433