classSolution{public:stringmakeLargestSpecial(stringS){vector<string>specials;intcount=0;for(inti=0,j=0;j<S.length();++j){count+=S[j]=='1'?1:-1;if(count==0){// Find a special stringconststring&inner=S.substr(i+1,j-i-1);specials.push_back('1'+makeLargestSpecial(inner)+'0');i=j+1;}}sort(begin(specials),end(specials),greater<>());returnjoin(specials);}private:stringjoin(constvector<string>&specials){stringjoined;for(conststring&special:specials)joined+=special;returnjoined;}};