题目
思路
代码
class Solution { public String decodeString(String s) { char[] chars = s.toCharArray(); int len = chars.length; Stack<String> strs = new Stack<>(); Stack<Integer> nums = new Stack<>(); int num = 0; String str = ""; for (int i = 0; i < len; i++) { //计算数字 if (chars[i] >= '0' && chars[i] <= '9') { num = num * 10 + (chars[i] - '0'); //对左括号入栈 } else if (chars[i] == '[') { nums.push(num); strs.push(str); num = 0; str = ""; //对右括号入栈 } else if (chars[i] == ']') { StringBuilder temp = new StringBuilder(str); int size = nums.pop(); for (int j = 1; j < size; j++) { temp.append(str); } str = strs.pop() + temp.toString(); //对字符串相加即可 } else { str += chars[i]; } } return str; }}
字符串解码