leetcode 17.电话号码的字母组合(js)

本文深入探讨了一种算法,该算法将数字串转换为所有可能的字母组合,基于电话按键上的数字到字母映射。通过示例展示了如何从输入如23生成输出[adaeaf...],并提供了详细的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

在这里插入图片描述

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

题解:

/**
 * @param {string} digits
 * @return {string[]}
 */
var letterCombinations = function(digits) {
			const maps = {
				'2': 'abc',
				'3': 'def',
				'4': 'ghi',
				'5': 'jkl',
				'6': 'mno',
				'7': 'pqrs',
				'8': 'tuv',
				'9': 'wxyz'
			};
			var res = [];
			for (let num of digits) {
				let w = maps[num];
				if (res.length > 0) {
					let tmp = [];
					for (let i = 0; i < res.length; ++i) {
						for (let j = 0; j < w.length; ++j) {
							tmp.push(res[i] + w[j]);
						}
					}
					res = tmp;
				} else {
					res.push(...w);
				}
			}
			return res;
		};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值