LeetCode Letter Combinations of a Phone Number (DFS)

题意

Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.

给定数字,输出所有可能的字母组合

解法

可以先将数字对应的字母存好,然后遍历输出就可以。只不过不用递归来写好像比较麻烦,这里用了一个DFS。

class Solution
{
public:
    vector<string> letterCombinations(string digits)
    {
	    static vector<vector<char>>	table = {
		    					{},{},
							{'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'}
	    					};
	    vector<string>	rt;
	    string	temp;
	    dfs(digits,table,rt,0,digits.size(),temp);
	    return	rt;
    }

    void	dfs(string digits,vector<vector<char>> table,vector<string> & ans,int k,int length,string temp)
    {
	    if(k >= length && temp.size())
	    {
		    ans.push_back(temp);
		    return;
	    }

	    for(int i = 0;i < table[digits[k] - '0'].size();i ++)
	    {
		    temp += table[digits[k] - '0'][i];
		    dfs(digits,table,ans,k + 1,length,temp);
		    temp.pop_back();
	    }
    }
};
posted @   Decouple  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示