一、题目
二、代码
class Solution
{
public:
vector<string> return_vector;
vector<char> path;
string string_2="abc"; string string_3="def"; string string_4="ghi";
string string_5="jkl"; string string_6="mno"; string string_7="pqrs";
string string_8="tuv"; string string_9="wxyz";
void back_track(int max_point, int now_point , string digits)
{
int i,j;
if(now_point==max_point+1)
{
string temp_string;
for(i=0;i<path.size();i++)
{
temp_string+=path[i];
}
return_vector.push_back(temp_string);
return;
}
else
{
char temp_char=digits[now_point];
switch(temp_char)
{
case '2':
{
for(i=0;i<string_2.size();i++)
{
path.push_back(string_2[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '3':
{
for(i=0;i<string_3.size();i++)
{
path.push_back(string_3[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '4':
{
for(i=0;i<string_4.size();i++)
{
path.push_back(string_4[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '5':
{
for(i=0;i<string_5.size();i++)
{
path.push_back(string_5[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '6':
{
for(i=0;i<string_6.size();i++)
{
path.push_back(string_6[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '7':
{
for(i=0;i<string_7.size();i++)
{
path.push_back(string_7[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '8':
{
for(i=0;i<string_8.size();i++)
{
path.push_back(string_8[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
case '9':
{
for(i=0;i<string_9.size();i++)
{
path.push_back(string_9[i]);
back_track(max_point,now_point+1,digits);
path.pop_back();
}
break;
}
default:
{
break;
}
}
}
}
vector<string> letterCombinations(string digits)
{
return_vector.clear();
path.clear();
if(digits.size()!=0)
{
back_track(digits.size()-1,0,digits);
}
return return_vector;
}
};