Decode String Posted on 2018-08-12 Descriptionhttps://leetcode.com/problems/decode-string/description/ Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344class Solution(object): def decodeString(self, s): """ :type s: str :rtype: str """ return self.decodeFromIndex(s, 0)[1] def decodeFromIndex(self, s, index): ret = "" traverse = index while traverse < len(s): ret_string = "" number_str = "" number = None number_flag = False while traverse < len(s) and ( (s[traverse] >= 'a' and s[traverse] <= 'z') or (s[traverse] >= 'A' and s[traverse] <= 'Z') ): ret += s[traverse] traverse += 1 while traverse < len(s) and s[traverse] >= '0' and s[traverse] <= '9': number_flag = True number_str += s[traverse] traverse += 1 if number_flag: number = int(number_str) if traverse < len(s) and s[traverse] == '[': traverse += 1 [traverse, ret_string] = self.decodeFromIndex(s, traverse) if number: for i in range(number): ret += ret_string print(traverse, ret_string) if traverse < len(s) and s[traverse] == ']': traverse += 1 break return (traverse, ret)