import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ public String decodeString (String s) { // write code here Stack<String> stack = new Stack<>(); Stack<String> numStack = new Stack<>(); StringBuilder res = new StringBuilder(); for(char c : s.toCharArray()){ if(Character.isDigit(c)){ numStack.push(String.valueOf(c)); }else if(c == ']'){ StringBuilder t = new StringBuilder(); while(!stack.isEmpty() && !stack.peek().equals("[")){ t.insert(0,stack.pop()); } stack.pop(); int cnt = Integer.parseInt(numStack.pop()); String str = t.toString(); StringBuilder t2 = new StringBuilder(); while(cnt > 0){ t2.append(str); cnt--; } stack.push(t2.toString()); }else{ stack.push(String.valueOf(c)); } } while(!stack.isEmpty()){ res.insert(0,stack.pop()); } return res.toString(); } }