Letter Combinations of a Phone Number
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.
Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
思路:
其实就是深度搜索,然后用递归的方法,记录层数,当层数=最大深度的时候,返回。
class Solution {
public:
vector<string> res;
string temp;
void combinations(string digits, int level)
{
string cons[]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
if(level==digits.length())
{
res.push_back(temp);
cout<<"hellopush"<<endl;
return;
}
int num=digits[level]-'0';
string l=cons[num];
for(int i=0;i<l.length();i++)
{
cout<<"hello "<<i<<endl;
temp.push_back(l[i]);
combinations(digits,level+1);
temp=temp.substr(0,temp.size()-1);
}
cout<<"res "<<endl;
}
vector<string> letterCombinations(string digits) {
int n=digits.length();
if(n==0) return res;
combinations(digits,0);
return res;
}
};