Untitled

mail@pastecode.io avatar
unknown
plain_text
11 days ago
1.1 kB
1
Indexable
Never
class Solution {
public:
    string decodeString(string s) {
        stack<char>st;
        for(int i=0;i<s.size();i++){

            if(s[i]!=']') st.push(s[i]);


            else if(s[i]==']'){
                
                string encoded_string=""; //get the encoded_string in tmp
                while(st.top()!='['){
                    encoded_string=st.top()+encoded_string;
                    st.pop();
                }
                st.pop(); //removes the [

                string count="";  //get the k in count
                while(!st.empty() && isdigit(st.top())){
                    count= st.top() +count;
                    st.pop();
                }
                
                int k=stoi(count);
                string tmp2="";
                while(k--){
                    tmp2=tmp2+encoded_string; // tmp2 is k X encoded_string
                }
                for(char ch:tmp2) st.push(ch);
            }
        }
        string res="";
        while(!st.empty()){
            res=st.top()+res;
            st.pop();
        }
        return res;
    }
};
Leave a Comment