classSolution{publicStringdecodeString(String s){StringBuilder res =newStringBuilder();int multi =0;Stack<Integer> stack_multi =newStack<>();Stack<String> stack_res =newStack<>();for(Character c : s.toCharArray()){if(c =='['){
stack_multi.push(multi);
stack_res.push(res.toString());
multi =0;
res =newStringBuilder();}elseif(c ==']'){StringBuilder tmp =newStringBuilder();int cur_multi = stack_multi.pop();for(int i =0; i < cur_multi; i++) tmp.append(res);
res =newStringBuilder(stack_res.pop()+ tmp);}elseif(c >='0'&& c <='9') multi = multi *10+Integer.parseInt(c +"");else res.append(c);}return res.toString();}}