复制一个字符串多次
复制一个字符串多次
String repeat = temp.toString().repeat(count);
394. 字符串解码
核心思路:
加入最后一个 ],在弹出时候
- 先收集括号内所有的字母
- 弹出 [
- 收集数字
class Solution {
public String decodeString(String s) {
Deque<String> stack = new ArrayDeque<>();
for (char c : s.toCharArray()) {
if (c != ']'){
stack.push(c + "");
}else { // 当前插入了 ]
StringBuilder temp = new StringBuilder(); // 1. [] 中的字母
while (!"[".equals(stack.peek())){
temp.insert(0, stack.pop());
}
stack.pop(); //2. 弹出栈顶 [
// 3. 开始寻找前方的数字
StringBuilder temp2 = new StringBuilder();
while (!stack.isEmpty()){
String peek1 = stack.peek();
if (Character.isDigit(peek1.charAt(0))){ // 特殊:`2[abc]3[cd]ef` ==>abcabc已经化为一个整体字符串,使用 charAt(0),也可判断出不是数字
temp2.insert(0, peek1);
stack.pop();
}else {
break;
}
}
int count = Integer.parseInt(temp2.toString());
String repeat = temp.toString().repeat(count);
stack.push(repeat);
}
}
StringBuilder res = new StringBuilder();
while (!stack.isEmpty()){
res.insert(0, stack.pop());
}
return res.toString();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix