Menu
CoddyTech

Decode String

中等栈递归python iconjava iconcpp iconc iconjs icon+10

编码字符串会用 k[text] 表示重复的文本:将 text 连续写 k 次。分组可以嵌套,所以 2[a3[b]] 表示 abbbabbb。给定编码字符串 s,返回解码后的字符串。

所有方括号外的字母都保持不变。每个计数都是紧挨着 [ 前面的正整数,数字不会出现在其他位置。

函数

decodeString(s: string) → string
sstring
编码后的字符串
返回值string
解码后的字符串

约束条件

  • 1 ≤ s.length ≤ 104
  • s 只包含小写英文字母、数字、[ 和 ]。
  • s 是一种有效的编码:每个 [ 前面都有一个计数,并且都有对应的 ],没有空括号。
  • 每个计数 k 都满足 1 ≤ k ≤ 300,且没有前导零。
  • 括号最多可嵌套 100 层。
  • 解码后的字符串最多有 5 × 104 个字符。

示例

输入
s = "2[ab]3[c]x"
输出
"ababcccx"
解释
2[ab] 得到 abab,3[c] 得到 ccc。x 位于所有方括号之外,会原样复制:ababcccx。
challenge icon

进阶

解码后的字符串可能远长于输入。当它的长度可能达到 10^18 时,怎样才能不构造整个字符串就返回位置 i 处的字符?

重置代码
def decodeString(s):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "2[ab]3[c]x"

预期输出

"ababcccx"