From 46cd9f1348fa63349c522ab4aec090d9c0735b1f Mon Sep 17 00:00:00 2001 From: Wen <409053122@qq.com> Date: Wed, 26 Apr 2023 10:56:00 +0800 Subject: [PATCH] =?UTF-8?q?[17]=20=E7=94=B5=E8=AF=9D=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AF=8D=E7=BB=84=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javascript/17.电话号码的字母组合.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/leecode/javascript/17.电话号码的字母组合.js diff --git a/src/leecode/javascript/17.电话号码的字母组合.js b/src/leecode/javascript/17.电话号码的字母组合.js new file mode 100644 index 0000000..83d944e --- /dev/null +++ b/src/leecode/javascript/17.电话号码的字母组合.js @@ -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