地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
思路:DFS搜索即可
Code:
#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
class Solution {
public:
int n;
string str;
string s[10]={"0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
vector<string> res;
void DFS(int k,string si){
if(k==n){
res.push_back(si);
return;
}
for(auto c:s[str[k]-'0'])
DFS(k+1,si+c);
}
vector<string> letterCombinations(string digits) {
str=digits;
n=str.length();
if(n) DFS(0,"");
return res;
}
};
int main()
{
string str;
vector<string> iv;
Solution So;
cin>>str;
iv=So.letterCombinations(str);
for(auto c:iv)
cout<<c<<" ";
cout<<endl;
return 0;
}