RETURN 所有键盘子序列

RETURN all the keypad subsequences

我们有一个 phone 键盘。使用它,我们必须找出可以使用输入 n 的数字组成的所有可能的字符串。我们必须 return 字符串而不是打印它。对于 0 和 1 return 空字符串。必须使用递归。

例如,对于 23,输出将是:- ad ae af bd be bf cd ce cf

这道题我试了很多,但我不会写代码。请帮助

我将递归调用创建字符串

class Solution{
public:
   map<int,string> KeyMapping;
   void generate_string(string &current, vector<int> &keys, vector<string> &ans){
      if(current.size() == keys.size()){
          ans.emplace_back(current);
          return;
      }
      int index = (int)current.size();
      for(char i: keyMapping[keys[index]]){     
         current+=i;
         generate_string(current,keys,ans);
         current.pop_back();
      }      
   }
};

main()

中使用
int main(){
  vector<int> keys = {1,2};
  string res = "";
  Solution obj;
  // Set keymapping to obj.keyMapping
  vector<string> all;
  obj.generate_string(res,keys,all);
  for(auto i: all)cout << i << " ";
  return 0;
}