Advertisement
asdfg0998

casc

Nov 20th, 2024
111
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1.  string getKthCombination(string digits, int k) {
  2.         if (digits.empty()) return "";
  3.  
  4.         numberMap[2] = "abc";
  5.         numberMap[3] = "def";
  6.         numberMap[4] = "ghi";
  7.         numberMap[5] = "jkl";
  8.         numberMap[6] = "mno";
  9.         numberMap[7] = "pqrs";
  10.         numberMap[8] = "tuv";
  11.         numberMap[9] = "wxyz";
  12.  
  13.         int n = digits.size();
  14.         vector<int> sizes(n, 1);
  15.  
  16.         for (int i = n - 2; i >= 0; --i) {
  17.             sizes[i] = sizes[i + 1] * numberMap[digits[i + 1] - '0'].size();
  18.         }
  19.  
  20.         string result;
  21.         --k;
  22.  
  23.         for (int i = 0; i < n; ++i) {
  24.             int digit = digits[i] - '0';
  25.             string possibleChars = numberMap[digit];
  26.             int idx = k / sizes[i];
  27.             result += possibleChars[idx];
  28.             k %= sizes[i];
  29.         }
  30.  
  31.         return result;
  32.     }
Advertisement
Comments
Add Comment
Please, Sign In to add comment
Advertisement