其中一个名为Staircase的Hackerrank问题,想编写一个函数,该函数需要一个整数并将#符号打印为阶梯,并且最后一行不能有任何空格。所以这是我定义的:
function staircase(n) {
let hash = '#';
for(let i=1; i <= n; i++){
console.log(hash.repeat(i));
}
}
staircase(6);
在Hackerrank中的输出为:(我故意手动添加行号)
1 #
2 ##
3 ###
4 ####
5 #####
6 ######
7
这是不可接受的,因为最后一行(7)正在打印多余的空间。问题是为什么会这样?
console.log()
是否增加了额外的空间?那有什么解决方案?可运行的代码段:
function staircase(n) {
let hash = '#';
for(let i=1; i <= n; i++){
console.log(hash.repeat(i));
}
}
staircase(6);
编辑:此代码在控制台中很好,它仅在Hackerrank测试中发生。
最佳答案
楼梯拼图有点误导,输出不显示前导空格。
实际上,您应该使楼梯右对齐,例如:
#
##
###
####
#####
######
(查看任务说明,输出正确缩进)
所以这样的事情应该工作:
function staircase(n) {
for (let i = 1; i <= n; i++)
console.log(' '.repeat(n-i) + '#'.repeat(i));
}