-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_row_from_alphabetical_sequence.js
43 lines (39 loc) · 1.41 KB
/
get_row_from_alphabetical_sequence.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
// Description:
// Task
// Implement a function which takes a number N and returns the N'th row of the sequence below. If the argument is greater than the number of rows in the sequence, then start from the beginning again, e.g. row 27 is the same as row 1.
// Sequence
// 1: ABCDEFGHIJKLMNOPQRSTUVWXYZ
// 2: BBCDEFGHIJKLMNOPQRSTUVWXYZ
// 3: CCCDEFGHIJKLMNOPQRSTUVWXYZ
// 4: DDDDEFGHIJKLMNOPQRSTUVWXYZ
// 5: EEEEEFGHIJKLMNOPQRSTUVWXYZ
// 6: FFFFFFGHIJKLMNOPQRSTUVWXYZ
// 7: GGGGGGGHIJKLMNOPQRSTUVWXYZ
// 8: HHHHHHHHIJKLMNOPQRSTUVWXYZ
// 9: IIIIIIIIIJKLMNOPQRSTUVWXYZ
// 10: JJJJJJJJJJKLMNOPQRSTUVWXYZ
// 11: KKKKKKKKKKKLMNOPQRSTUVWXYZ
// 12: LLLLLLLLLLLLMNOPQRSTUVWXYZ
// 13: MMMMMMMMMMMMMNOPQRSTUVWXYZ
// 14: NNNNNNNNNNNNNNOPQRSTUVWXYZ
// 15: OOOOOOOOOOOOOOOPQRSTUVWXYZ
// 16: PPPPPPPPPPPPPPPPQRSTUVWXYZ
// 17: QQQQQQQQQQQQQQQQQRSTUVWXYZ
// 18: RRRRRRRRRRRRRRRRRRSTUVWXYZ
// 19: SSSSSSSSSSSSSSSSSSSTUVWXYZ
// 20: TTTTTTTTTTTTTTTTTTTTUVWXYZ
// 21: UUUUUUUUUUUUUUUUUUUUUVWXYZ
// 22: VVVVVVVVVVVVVVVVVVVVVVWXYZ
// 23: WWWWWWWWWWWWWWWWWWWWWWWXYZ
// 24: XXXXXXXXXXXXXXXXXXXXXXXXYZ
// 25: YYYYYYYYYYYYYYYYYYYYYYYYYZ
// 26: ZZZZZZZZZZZZZZZZZZZZZZZZZZ
// SOLUTION:
function getRow(n) {
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const rows = 26;
const index = (n - 1) % rows;
const firstChar = alphabet[index];
const rowString = firstChar.repeat(index + 1) + alphabet.slice(index + 1);
return rowString;
}