这一题比较简答,但是这么简单的题我都敲了30多分钟,结果还有问题,修改,最后花了1个小时。。。。只能感叹自己水平太渣了,不熟练
class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> svec{ " ","", "abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };
vector<string> resultvec;
for (int i = 0; i < digits.size(); ++i)
combin(svec[digits[i] - '0'], resultvec);
return resultvec;
}
private:
void combin(string s, vector<string> &svec)
{
if (svec.empty())
{
string temp;
for (int i = 0; i < s.size(); ++i)
svec.push_back(temp + s[i]);
return;
}
vector<string> ss;
for (int time = 0; time < s.size(); ++time)
{
vector<string> temp;
for (vector<string>::iterator ite = svec.begin(); ite != svec.end(); ++ite)
temp.push_back(*ite + s[time]);
ss.insert(ss.begin(), temp.begin(), temp.end());
}
svec = ss;
}
};