Advertisement
leoanjos

Decode String

May 21st, 2022
1,005
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Solution {
  2. public:
  3.     string decodeString(string s) {
  4.         int idx = 0;
  5.         string ans = "";
  6.        
  7.         while (idx < (int) s.size()) {
  8.             if (s[idx] >= 'a' && s[idx] <= 'z') {
  9.                 ans += s[idx++];
  10.             } else {
  11.                 ans += decodeString(s, idx);
  12.             }
  13.         }
  14.        
  15.         return ans;
  16.     }
  17.    
  18. private:
  19.     string decodeString(string &s, int &idx) {
  20.         int k = 0;
  21.         while (idx < (int) s.size() && s[idx] >= '0' && s[idx] <= '9') {
  22.             k *= 10;
  23.             k += s[idx++] - '0';
  24.         }
  25.        
  26.         idx++;
  27.         string inside = "";
  28.        
  29.         while (idx < (int) s.size() && s[idx] != ']') {
  30.             if (s[idx] >= 'a' && s[idx] <= 'z') {
  31.                 inside += s[idx++];
  32.             } else {
  33.                 inside += decodeString(s, idx);
  34.             }
  35.         }
  36.        
  37.         string ans = "";
  38.         while (k--) {
  39.             ans += inside;
  40.         }
  41.        
  42.         idx++;
  43.         return ans;
  44.     }
  45. };
Advertisement
RAW Paste Data Copied
Advertisement