题目:
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"].
题意就是按照给定的字符序列,找出所有可能的字母组合;
先把数字对于的字母集合存起来,用dfs遍历所有情况。
string num[10];
char str[1000];
vector<string>result;
void hehe(string &digits,int i,int len)
{
if(i==len)
{
str[len]='\0';
string temp=str;
result.push_back(temp);
return;
}
int index=digits[i]-'0';
for(int j=0;j<num[index].size();++j)
{
str[i]=num[index][j];
hehe(digits,i+1,len);
}
}
class Solution {
public:
vector<string> letterCombinations(string digits) {
int len=digits.size();
result.clear();
num[2]="abc";
num[3]="def";
num[4]="ghi";
num[5]="jkl";
num[6]="mno";
num[7]="pqrs";
num[8]="tuv";
num[9]="wxyz";
hehe(digits,0,len);
return result;
}
};