与子集70?类似,子集每次两个分支,本题每次k个分支,子集是第一次不push第二次push元素,本题是每次都push元素,因此,本题答案的长度都为k,子集题目为各种组合;

/**
res,level,nums,i,dict
**/ class Solution {
public:
vector<string> letterCombinations(string digits) {
len=digits.length();
if(len==) return {};
//字母转化为数字
for(int i=;i<len;i++){
int num=digits[i]-'';
nums.push_back(num);
}
vector<string> res;
string level;
dfs(,res,level);
return res;
}
//建立递归函数,从第一个号码开始递归,到最后一个号码结束;
void dfs(int i,vector<string>&res,string& level){
//递归边界
if(i>=len){
res.push_back(level);return;
}
//递归表达式,选择第i个元素
string cur_str=dict[nums[i]];
for(int k=;k<cur_str.length();k++){
level.push_back(cur_str[k]);
dfs(i+,res,level);
level.pop_back();
}
} private:
int len;
vector<int> nums;
vector<string> dict={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
};

最新文章

  1. 【转】Asp.net MVC定义短网址
  2. Android开发自学笔记(Android Studio)&mdash;4.1布局组件
  3. BigDecimal使用中的坑
  4. drozer安装之夜深模拟器
  5. centos 7.0最小化安装 查看yum 所有安装的软件包~
  6. pgpool介绍和安装经验
  7. ZZULIOJ 1726 迷宫(BFS+小坑)
  8. [ZOJ 1005] Jugs (dfs倒水问题)
  9. extjs 点击复选框在表格中增加相关信息行
  10. 你听说过PHP 的面向方面编程吗?
  11. asp.net导出Excel
  12. FileStream的使用
  13. 使用sed,grep 批量修改文件内容
  14. vue实现实时监听文本框内容的变化(最后一种为原生js)
  15. 【XSY1537】五颜六色的幻想乡 数学 生成树计数 拉格朗日插值
  16. poj3190 Stall Reservations(贪心+STL)
  17. FP增加的索引
  18. SAP OBYC自动记账的实例说明 +VALUE STRING
  19. Go语言的类型转换和类型断言
  20. NetCore偶尔有用篇:NetCore项目添加MIME

热门文章

  1. redis blog
  2. ntpd服务配置规则
  3. java8学习之Stream分组与分区详解
  4. Restricting Input in HTML Textboxes to Numeric Values
  5. C语言高级用法---typeof( ((type *)0)-&gt;member )和offset_of()
  6. HDU - 6395 Sequence (整除分块+矩阵快速幂)
  7. 基于角色权限管理:rbac具体代码实现
  8. C# 跨线程访问控件(MethodInvoker)
  9. yum provides 反查询
  10. node.js之CommonJS