import [Link].
Stack;
public class Decodificador {
public String decodificar(String codificado) {
Stack<Integer> numStack = new Stack<>();
Stack<String> strStack = new Stack<>();
StringBuilder currentStr = new StringBuilder();
int num = 0;
for (char c : [Link]()) {
if ([Link](c)) {
num = num * 10 + (c - '0');
} else if (c == '[') {
[Link](num);
[Link]([Link]());
currentStr = new StringBuilder();
num = 0;
} else if (c == ']') {
int repeatTimes = [Link]();
StringBuilder temp = new StringBuilder([Link]());
for (int i = 0; i < repeatTimes; i++) {
[Link](currentStr);
currentStr = temp;
} else {
[Link](c);
return [Link]();
}
// Ejemplos de prueba
public static void main(String[] args) {
Decodificador dec = new Decodificador();
[Link]([Link]("3[a]3[b]3[c]")); // aaabbbccc
[Link]([Link]("1[4]2[]1[2+]1[(]2[-]1[5]1[]")); // 4*2+(--5)
[Link]([Link]("2[java]2[g]2[>]1[>]")); // javajavagg>>>
[Link]([Link]("2[lorem ]2[ipsum ]1[dolor]")); // lorem lorem ipsum ipsum
dolor