虽然本题说“给定一个仅包含数字 2-9
的字符串”,但还是要考虑所给串为空的情况......
class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> ans;
map<char,string> store;
int n=digits.size(),len,times;
string ptr;
if(digits == "")
return ans;
ans.push_back("");
store['2']="abc";
store['3']="def";
store['4']="ghi";
store['5']="jkl";
store['6']="mno";
store['7']="pqrs";
store['8']="tuv";
store['9']="wxyz";
for(int i=0;i<n;i++)
{
len=ans.size();
for(int j=0;j<len;j++)
{
ptr=*ans.begin();
ans.erase(ans.begin());
times=store[digits[i]].size();
for(int k=0;k<times;k++)
{
ans.push_back(ptr+store[digits[i]][k]);
}
}
}
return ans;
}
};