/*
问题
解决方案
/*
思路:
总结与反思:
1. 注意
*/
class Solution {
public String decodeString(String s) {
StringBuilder sb = new StringBuilder(s);
while (sb.indexOf("[") != -1) {
int leftIndex = sb.lastIndexOf("[");
int rightIndex = sb.indexOf("]", leftIndex);
String str = sb.substring(leftIndex + 1, rightIndex);
int i = leftIndex - 1, count = 0, base = 1;
while (i >= 0 && Character.isDigit(sb.charAt(i))) {
count += base * (sb.charAt(i) - '0');
base *= 10;
i--;
}
StringBuilder tmp = new StringBuilder();
for (int j = 0; j < count; j++) tmp.append(str);
sb = sb.replace(i + 1, rightIndex + 1, tmp.toString());
}
return sb.toString();
}
}