题目:
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;
});
}
再接再励~