您的位置:首页 > 其它

LeetCode-17- Letter Combinations of a Phone Number(查表/递归)-Medium

2015-12-27 12:45 603 查看
题意理解:

将手机的数字按键值,转换为对应字母的所有组合;

题目分析:

1. 查表;

2. 将数字字符串的首字符取出,然后剩余的字符子串做递归处理;

解题代码:

class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> ans;
int dLen=digits.length();
if(dLen==0){
return ans;
}

vector<string> dictionary={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};

string s=dictionary[digits[0]-'0'];
//cout<<"s= "<<s<<endl;

for(int i=0;i<s.length();i++){
string t="";
t+=s[i];

if(dLen>=2){
// cout<<"digits.substr(1)= "<<digits.substr(1)<<endl;

vector<string> v=letterCombinations(digits.substr(1));

// cout<<"v.size()= "<<v.size()<<endl;

for(int j=0;j<v.size();j++){
ans.push_back(t+v[j]);
//cout<<"push_back1: "<<t<<endl;
}
}else{
ans.push_back(t);
//cout<<"push_back2: "<<t<<endl;
}
}

return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: