1.电话号码的字母组合
这道题因为涉及的每个字母数组斗眼遍历到 所以循环很多
而且又不确定这个digits的长度
所以采用深度优先搜索的办法DFS就可以解决
class Solution {
public:
vector<string> letterCombinations(string digits) {
if(digits.size()==0){return {};}
vector<string>res;
string cur;
vector<vector<char>>nums(8);
nums[0]={'a','b','c'};
nums[1]={'d','e','f'};
nums[2]={'g','h','i'};
nums[3]={'j','k','l'};
nums[4]={'m','n','o'};
nums[5]={'p','q','r','s'};
nums[6]={'t','u','v'};
nums[7]={'w','x','y','z'};
dfs(nums,digits,0,cur,res);
return res;
}
private:
void dfs(vector<vector<char>>nums,string digits,int l,string& cur,vector<string>& res){
if(l==digits.size()){
res.push_back(cur);
return;
}
for(char c:nums[digits[l]-'2']){
cur.push_back(c);
dfs(nums,digits,l+1,cur,res);
cur.pop_back();
}
}
};