第一题:电话号码和字母组合(50分) 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
时间: 2024-05-20 15:14:52 浏览: 90
JS实现电话号码的字母组合算法示例
这道题可以使用回溯算法来解决,具体步骤如下:
1. 定义一个字典 `digit2char`,用于存储数字与字母的映射关系。
2. 定义一个列表 `res`,用于存储最终结果。
3. 定义一个函数 `backtrack`,用于回溯搜索所有可能的字母组合,其中参数 `path` 表示当前搜索路径,`digit` 表示待搜索的数字字符串,`index` 表示当前待搜索的数字下标。
4. 在 `backtrack` 函数中,如果 `index` 等于数字字符串的长度,说明已经搜索完毕,将当前搜索路径 `path` 加入到结果列表 `res` 中,并返回。
5. 如果 `index` 不等于数字字符串的长度,取出当前待搜索的数字,遍历其对应的字母列表,对于每个字母,将其加入到当前搜索路径 `path` 中,然后递归调用 `backtrack` 函数搜索下一个数字,搜索完成后将当前字母从搜索路径 `path` 中删除,继续搜索下一个字母。
代码实现如下:
阅读全文