详细思路: 创建一个栈 stack,和两个辅助栈 digits 和 cur。 遍历输入字符串 s 的每个字符 c。 如果 c 是数字字符,说明当前有数字,那么将当前数字乘以 10 并加上当前字符 c 的数字值,更新 digit 变量。 如果 c 是左括号 "[", 说明开始一个新的字符串,需要将当前字符串保存到栈 stack 中,并且清空 cur 变量用于保存下一个字符串。 同时需要将当前数字 digit 保存到辅助栈 digits 中,并将 digit 重置为 0。 如果 c 是右括号 "]", 说明当前字符串已经结束,需要将 cur 字符串重复 digits[-1] 次,并与栈顶的字符串 stack[-1] 进行拼接,然后将 cur 更新为栈顶字符串,并弹出 digits 和 stack 的栈顶元素。 如果 c 是字母字符,说明当前在构建一个字符串,那么将当前字符拼接到 cur 变量后面。 最后返回栈 stack 的栈顶元素和 cur 的拼接结果,如果 stack 为空,则直接返回 cur。
1

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务