-
Notifications
You must be signed in to change notification settings - Fork 3
/
index.js
36 lines (34 loc) · 950 Bytes
/
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
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function(digits) {
const rules = {
'2':['a', 'b', 'c'],
'3':['d', 'e', 'f'],
'4':['g', 'h', 'i'],
'5':['j', 'k', 'l'],
'6':['m', 'n', 'o'],
'7':['p', 'q', 'r', 's'],
'8':['t', 'u', 'v'],
'9':['w', 'x', 'y', 'z'],
};
let result = [];
for (let i = 0; i < digits.length; i++) {
if (rules[digits[i]] !== undefined) {
let new_result = [];
rules[digits[i]].forEach((char) => {
if (i === 0) {
new_result.push(char);
} else {
new_result = new_result.concat(result.map((str) => {
return str + char;
}));
}
});
result = new_result;
}
}
return result;
};
console.log(letterCombinations('3'));