【重点!!!】【栈】394.字符串解码
2023-12-24 21:37:08
法1:基于栈
class Solution {
public String decodeString(String s) {
int multi = 0, i = 0;
StringBuilder res = new StringBuilder();
LinkedList<Integer> multiStack = new LinkedList<>();
LinkedList<String> stringStack = new LinkedList<>();
while (i < s.length()) {
char c = s.charAt(i);
if (c == '[') {
multiStack.offerLast(multi);
stringStack.offerLast(res.toString());
multi = 0;
res = new StringBuilder();
} else if (c == ']') {
StringBuilder tmpBuilder = new StringBuilder();
int tmpMulti = multiStack.removeLast();
for (int j = 0; j < tmpMulti; ++j) {
tmpBuilder.append(res);
}
res = new StringBuilder(stringStack.removeLast() + tmpBuilder.toString());
} else if (c >= '0' && c <= '9') {
multi = 10 * multi + c - '0';
} else {
res.append(c);
}
++i;
}
return res.toString();
}
}
文章来源:https://blog.csdn.net/Allenlzcoder/article/details/135186152
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!