■ Top 20 Pattern Questions Every Developer Must
Practice
Patterns are not just about stars ■ – they train your brain to think in loops, conditions & logic.
Here are 20 classic coding patterns (with JavaScript answers) that often pop up in interviews.
1. Square Pattern
Question: Print a 5×5 square of stars.
Output:
*****
*****
*****
*****
JavaScript Answer:
let n = 5;
for (let i = 0; i < n; i++) {
[Link]("*".repeat(n));
}
2. Right Triangle
Question: Print a right triangle with 5 rows.
Output:
*
**
***
****
*****
JavaScript Answer:
let n = 5;
for (let i = 1; i <= n; i++) {
[Link]("*".repeat(i));
}
3. Inverted Right Triangle
Question: Print an inverted right triangle.
Output:
*****
****
***
**
*
JavaScript Answer:
let n = 5;
for (let i = n; i >= 1; i--) {
[Link]("*".repeat(i));
}
4. Pyramid Pattern
Question: Print a pyramid with stars.
Output:
*
***
*****
*******
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
let spaces = " ".repeat(n - i);
let stars = "*".repeat(2 * i - 1);
[Link](spaces + stars);
}
5. Inverted Pyramid
Question: Print an inverted pyramid.
Output:
*******
*****
***
*
JavaScript Answer:
let n = 4;
for (let i = n; i >= 1; i--) {
let spaces = " ".repeat(n - i);
let stars = "*".repeat(2 * i - 1);
[Link](spaces + stars);
}
6. Diamond Pattern
Question: Print a diamond shape.
Output:
*
***
*****
*******
*****
***
*
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i - 1));
}
for (let i = n - 1; i >= 1; i--) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i - 1));
}
7. Hourglass Pattern
Question: Print an hourglass shape.
Output:
*******
*****
***
*
***
*****
*******
JavaScript Answer:
let n = 4;
for (let i = n; i >= 1; i--) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i - 1));
}
for (let i = 2; i <= n; i++) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i - 1));
}
8. Hollow Square
Question: Print a hollow square.
Output:
*****
* *
* *
* *
*****
JavaScript Answer:
let n = 5;
for (let i = 0; i < n; i++) {
if (i === 0 || i === n - 1) {
[Link]("*".repeat(n));
} else {
[Link]("*" + " ".repeat(n - 2) + "*");
}
}
9. Hollow Pyramid
Question: Print a hollow pyramid.
Output:
*
* *
* *
*******
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
let spaces = " ".repeat(n - i);
if (i === 1) {
[Link](spaces + "*");
} else if (i === n) {
[Link]("*".repeat(2 * i - 1));
} else {
[Link](spaces + "*" + " ".repeat(2 * i - 3) + "*");
}
}
10. Butterfly Pattern
Question: Print a butterfly shape.
Output:
* *
** **
*** ***
*******
*** ***
** **
* *
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
[Link]("*".repeat(i) + " ".repeat(2 * (n - i)) + "*".repeat(i));
}
for (let i = n - 1; i >= 1; i--) {
[Link]("*".repeat(i) + " ".repeat(2 * (n - i)) + "*".repeat(i));
}
11. Half Pyramid with Numbers
Question: Print a half pyramid with numbers.
Output:
1
12
123
1234
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
let row = "";
for (let j = 1; j <= i; j++) {
row += j;
}
[Link](row);
}
12. Inverted Half Pyramid with Numbers
Question: Print an inverted half pyramid with numbers.
Output:
1234
123
12
1
JavaScript Answer:
let n = 4;
for (let i = n; i >= 1; i--) {
let row = "";
for (let j = 1; j <= i; j++) {
row += j;
}
[Link](row);
}
13. Floyd’s Triangle
Question: Print Floyd’s triangle.
Output:
1
2 3
4 5 6
7 8 9 10
JavaScript Answer:
let n = 4, num = 1;
for (let i = 1; i <= n; i++) {
let row = "";
for (let j = 1; j <= i; j++) {
row += num++ + " ";
}
[Link]([Link]());
}
14. Pascal’s Triangle
Question: Print Pascal’s triangle.
Output:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
JavaScript Answer:
let n = 5;
function fact(num) {
return num <= 1 ? 1 : num * fact(num - 1);
}
for (let i = 0; i < n; i++) {
let row = " ".repeat(n - i);
for (let j = 0; j <= i; j++) {
row += fact(i) / (fact(j) * fact(i - j)) + " ";
}
[Link](row);
}
15. Number Pyramid
Question: Print a number pyramid.
Output:
1
121
12321
1234321
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
let row = " ".repeat(n - i);
for (let j = 1; j <= i; j++) row += j;
for (let j = i - 1; j >= 1; j--) row += j;
[Link](row);
}
16. Binary Triangle
Question: Print a binary triangle.
Output:
1
01
101
0101
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
let row = "";
for (let j = 1; j <= i; j++) {
row += (i + j) % 2;
}
[Link](row);
}
17. Hollow Diamond
Question: Print a hollow diamond.
Output:
*
* *
* *
* *
* *
* *
*
JavaScript Answer:
let n = 4;
for (let i = 1; i <= n; i++) {
if (i === 1) [Link](" ".repeat(n - i) + "*");
else [Link](" ".repeat(n - i) + "*" + " ".repeat(2 * i - 3) + "*");
}
for (let i = n - 1; i >= 1; i--) {
if (i === 1) [Link](" ".repeat(n - i) + "*");
else [Link](" ".repeat(n - i) + "*" + " ".repeat(2 * i - 3) + "*");
}
18. Zig-Zag Pattern
Question: Print a zig-zag pattern.
Output:
* *
* * * *
* * *
JavaScript Answer:
let n = 3, m = 9;
for (let i = 0; i < n; i++) {
let row = "";
for (let j = 0; j < m; j++) {
if ((i + j) % 4 === 0 || (i === 1 && j % 2 === 0)) row += "*";
else row += " ";
}
[Link](row);
}
19. Sandglass Star
Question: Print a sandglass pattern.
Output:
******
****
**
**
****
******
JavaScript Answer:
let n = 3;
for (let i = n; i >= 1; i--) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i));
}
for (let i = 1; i <= n; i++) {
[Link](" ".repeat(n - i) + "*".repeat(2 * i));
}
20. Spiral Numbers
Question: Print spiral numbers (advanced).
Output:
Matrix spiral pattern
JavaScript Answer:
let n = 4;
let arr = [Link]({ length: n }, () => Array(n).fill(0));
let top = 0, left = 0, right = n - 1, bottom = n - 1, num = 1;
while (top <= bottom && left <= right) {
for (let i = left; i <= right; i++) arr[top][i] = num++;
top++;
for (let i = top; i <= bottom; i++) arr[i][right] = num++;
right--;
for (let i = right; i >= left; i--) arr[bottom][i] = num++;
bottom--;
for (let i = bottom; i >= top; i--) arr[i][left] = num++;
left++;
}
[Link](row => [Link]([Link](" ")));