Decode String思路:逐个char解析即可
GitHub地址:https://github.com/corpsepiges/leetcode
public class Solution {
public String decodeString(String s) {
if (s.length() == 0) {
return "";
}
StringBuffer sb = new StringBuffer();
char[] cs = s.toCharArray();
int startNum = -1;
int startString = -1;
int bracketNums = 0;
for (int i = 0; i < cs.length; i++) {
if (cs[i] >= '0' && cs[i] <= '9') {
if (startNum == -1) {
startNum = i;
}
} else if (cs[i] == '[') {
if (startString == -1) {
startString = i;
}
bracketNums++;
} else if (cs[i] == ']') {
bracketNums--;
if (bracketNums == 0) {
int times = Integer.valueOf(s.substring(startNum, startString));
String son = decodeString(s.substring(startString + 1, i));
for (int j = 0; j < times; j++) {
sb.append(son);
}
startString = -1;
startNum = -1;
}
} else if (bracketNums == 0) {
sb.append(String.valueOf(cs[i]));
}
}
return sb.toString();
}
}
本文介绍了一种名为DecodeString的字符串解码算法,该算法能够处理包含数字与方括号的字符串,通过递归的方式重复指定次数的子串。文章提供了完整的Java实现代码,并在GitHub上分享了代码实现。
1365

被折叠的 条评论
为什么被折叠?



