当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,