/
index.js
59 lines (50 loc) · 1.37 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/**
This week’s question:
Given an integer n, print a balanced binary tree with n leaf nodes using the characters /, , and \.
Examples:
> printTree(2)
/\
// or you could output something like:
/\
/ \
> printTree(3)
/\
/\ \
// or you could output something like:
/\
/ /\
/ / \
*/
const binaryTree = (n) => {
const res = [];
for (let i = 1; i < n; i++) {
const row = Array.from({ length: n - i }, (_, idx) =>
idx === 0 ? "/\\" : " \\"
).join("");
const spaces = " ".repeat(i);
res.unshift(spaces + row + spaces);
}
return res.join("\n");
};
console.log(binaryTree(20));
/**
/\
/\ \
/\ \ \
/\ \ \ \
/\ \ \ \ \
/\ \ \ \ \ \
/\ \ \ \ \ \ \
/\ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
*/