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"].
题意就是按照给定的字符序列,找出所有可能的字母组合;
先把数字对于的字母集合存起来,用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; } };
补充:web前端 , JavaScript ,