[17] 电话号码的字母组合

This commit is contained in:
Wen 2023-04-26 10:56:00 +08:00
parent d6bec608eb
commit 46cd9f1348
1 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,45 @@
/*
* @lc app=leetcode.cn id=17 lang=javascript
*
* [17] 电话号码的字母组合
*/
// @lc code=start
/**
* @param {string} digits
* @return {string[]}
*/
const keymap = [
[],
[],
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
['j', 'k', 'l'],
['m', 'n', 'o'],
['p', 'q', 'r', 's'],
['t', 'u', 'v'],
['w', 'x', 'y', 'z'],
];
var letterCombinations = function (digits) {
const result = [];
if (digits.length === 0) {
return result;
}
def('', 0, digits, result);
return result;
};
const def = function (ret, index, digits, arr) {
if (index >= digits.length) {
arr.push(ret);
return;
}
for (const letter of keymap[parseInt(digits[index])]) {
ret += letter;
def(ret, index + 1, digits, arr);
ret = ret.slice(0, -1);
}
};
// @lc code=end