您的位置:首页 > 其它

[leetcode] 17 Letter Combinations of a Phone Number

2015-02-17 14:26 501 查看
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"].

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.

leetcode中Combination总共有四道题,总体思想上都是想通的,均是利用DFS,DFS方法的结构为:

void DFS(){

if(满足条件) 结束并push_back
else{
for()循环遍历{
push_back;
DFS(下一层);
pop_back();
}
}
}

其他方面本题基本没有什么特别的难点,按键对应的字母问题解决方案很多,本文的算是一种偷工减料的做法,无论如何,解决了就好

class Solution {
public:
string button[10] = {"","","abc","def","ghi","jkl","mno","qprs","tuv","wxyz"};
vector<string> ans;

vector<string> letterCombinations(string digits) {
string temp;
press(0, digits, temp);
return ans;
}

void press(int step, string digits, string &temp){
if(step== digits.size()){
ans.push_back(temp);
return;
}
else{
for(int i= 0; i< button[digits[step]- '0'].size(); i++){
temp.push_back(button[digits[step]-'0'][i]);
press(step+ 1, digits, temp);
temp.pop_back();
}
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode dfs