java 怎么decode和encode 输入的字符串

比如:
Input: 1[b]
Output: b

Input: 3[b2[ca]1[d]]
Output: bcacadbcacadbcacad

展开没什么好说的,用堆栈,就这么展开。
编码的思路是使用后缀数组找到最长公共子串,然后折叠,再继续,直到找不到。

就说这么多吧。最近回答没有悬赏的问题给了代码都没有个采纳的。真心求代码的,把悬赏分加好,采纳好。帮你写。

用递归就行,楼上说的是从楼主给的输出得出输入的方法,由输入得输出就很简单了,递归获得中括号表示的字符串,重复打印中括号前数字的次数,然后和前面的字符串拼接。

使用两条栈实现 一条数字栈存数字,一条字符栈存[ 和需要答应的字符 碰到[ 和字母都打入栈中 碰到 ] 就从数字站推出栈顶的数字为打印次数,字符栈推到最近的一次 [ 然后将推出的字符打印推出的数字次数就行了