【发布时间】:2019-04-17 19:28:53
【问题描述】:
class Solution(object):
def decode(self, s):
sub_s = ""
while self.i < len(s) and s[self.i] != "]":
if not s[self.i].isdigit():
sub_s += s[self.i]
self.i += 1
else:
n = 0
while self.i < len(s) and s[self.i].isdigit():
n = n * 10 + int(s[self.i])
self.i += 1
self.i += 1
seq = self.decode(s)
self.i += 1
sub_s += seq * n
return sub_s
def decodeString(self, s):
self.i = 0
return self.decode(s)
我正在研究leetcode问题394解码字符串问题问题是转换一个字符串。
- s = "3[a]2[bc]",返回 "aaabcbc"。
- s = "3[a2[c]]",返回 "accacccacc"。
- s = "2[abc]3[cd]ef",返回 "abcabccdcdcdef"。
以上解决方案是从作者bluedawnstar cpp解决方案翻译的Python版本。
self.i 在整个递归过程中维护全局状态,是否有更 Pythonic 的方式来维护此类变量,而不是使用 self?
【问题讨论】:
标签: python variables recursion class-variables