394. 字符串解码
给定一个经过编码的字符串,返回它解码后的字符串。
编码规则为:
k[encoded_string]
,表示其中方括号内部的encoded_string
正好重复k
次。你可以认为k
总是一个正整数。输入字符串中可能存在嵌套的
k[encoded_string]
表达式。示例 1:
输入:s = "3[a]2[bc]"
输出:"aaabcbc"
示例 2:
输入:s = "3[a2[c]]"
输出:"accaccacc"
示例 3:
输入:s = "2[abc]3[cd]ef"
输出:"abcabccdcdcdef"
这个题本质是对嵌套结构的解析,有两种经典的解法:
[
前的重复次数 k
[
:将当前数字和字符串压栈,重置]
:弹出数字和字符串,拼接重复结果func decodeString(s string) string {
numStack := []int{
}
strStack := []string{
}
currStr := ""
num := 0
for _, ch :=