knakul853

Untitled

Jun 21st, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. /**
  2. knakul853
  3. **/
  4.  
  5. class Solution {
  6. public:
  7.     vector<string> letterCombinations(string digits) {
  8.        
  9.         map<int,string>mp;
  10.         mp[3]="def";mp[2]="abc";mp[4]="ghi";mp[5]="jkl";mp[6]="mno";
  11.        
  12.         if(digits.size()==0)return {};
  13.         mp[7]="pqrs";mp[8]="tuv";mp[9]="wxyz";
  14.        
  15.         vector<string>ans;
  16.         string temp;
  17.        
  18.         backtrack(digits , ans , mp , 0 , temp);
  19.        
  20.         return ans;
  21.     }
  22.    
  23.     void backtrack(string& digits , vector<string>& ans , map<int,string>mp , int id , string temp)
  24.     {
  25.         if(temp.size() == digits.size())
  26.         {
  27.             ans.push_back(temp);
  28.             return;
  29.         }
  30.         for(int i=id;i<digits.size();i++)
  31.         {
  32.             string s1 = mp[digits[i]-'0'];
  33.             for(int j=0;j<s1.size();j++)
  34.             {
  35.                 string keep = temp;
  36.                 temp = temp+string(1,s1[j]);
  37.                 backtrack(digits , ans , mp , i + 1 , temp);
  38.                
  39.                 temp = keep;
  40.             }
  41.         }
  42.        
  43.     }
  44. };
Add Comment
Please, Sign In to add comment