-
Notifications
You must be signed in to change notification settings - Fork 0
/
Letter_Combinations_of_a_Phone_Number.js
75 lines (51 loc) · 1.81 KB
/
Letter_Combinations_of_a_Phone_Number.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// description :
// Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
// A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
// Example 1:
// Input: digits = "23"
// Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
// Example 2:
// Input: digits = ""
// Output: []
// Example 3:
// Input: digits = "2"
// Output: ["a","b","c"]
// Constraints:
// 0 <= digits.length <= 4
// digits[i] is a digit in the range ['2', '9'].
// ==============================================================================================================
const letterCombinations = (digits) => {
if (digits.length === 0 || digits == 0) {
return [];
}
// Define the mapping of digits to letters
const digitMap = {
'2': 'abc',
'3': 'def',
'4': 'ghi',
'5': 'jkl',
'6': 'mno',
'7': 'pqrs',
'8': 'tuv',
'9': 'wxyz'
};
// Initialize the result array with an empty string
let result = [''];
// Iterate through each digit in the input
for (let digit of digits) {
// Get the letters corresponding to the current digit
const letters = digitMap[digit];
// Create a new array to store the updated combinations
const newResult = [];
// Iterate through the existing combinations and append each letter
for (let combination of result) {
for (let letter of letters) {
newResult.push(combination + letter);
}
}
// Update the result array with the new combinations
result = newResult;
}
return result;
};
console.log('result', letterCombinations("0"))