Decode String
题意
给定一个字符串形式,让你进行编码,具体的编码方式见样例。
解法
只能说我一直对这种题目搞不太清楚。。没有细分化的思维能力。。
简单快速的方法是用栈来代替递归形式,具体的就是通过压入栈中一个二元组[str,int],首先是str代表的是括号内的字符串,但是我们知道这个字符串刚开始是不知道的,所以我们先默认其为””,int是括号外代表重复次数的数字,这是知道的。然后进入括号以后,如果没遇到’]’,则把字符压入栈顶二元组的str中去,直到遇到了’]’,则弹出栈顶二元组[string,int]。然后将string重复int次形成的字符串压入此时栈顶二元组的str中去,这样我们就形成了逐层的构建关系。。
再就是用递归的方法,用一个全局变量self.id来存储当前字符串处理到的位置,,这个写的比较繁琐,,速度也很慢。。
代码
非递归版:
|
|
递归版:
|
|