1.题目描述
2.思路
思路直接看下面代码吧,我懒得总结了。
3.代码(Python3)
class Solution:def decodeString(self, s: str) -> str:stack = list()times = list()previous_isdigit = Falseresult = ''digit = ''for char in list(s):if len(stack) == 0 and char.isalpha():result += charelif char.isdigit():if previous_isdigit is True:times[-1] += charelse:times.append(char)previous_isdigit = Trueelif char == '[' or char.isalpha():stack.append(char)previous_isdigit = Falseelif char == ']':temp_string = ''while 1:current_char = stack.pop()if current_char == '[':breaktemp_string = current_char + temp_stringif len(stack) == 0:result += temp_string * int(times.pop())else:stack.extend(list(temp_string * int(times.pop())))previous_isdigit = Falsereturn result
4.执行情况
5.感想
这个代码的基础部分是五天前写的,当时写完有错但没及时改,这几天出去玩,现在不能正确建立脑回路就随便改了一下,所以又产出了一个又臭又长但AC的代码,但我现在静不下心再优化,不管了就这样吧,要开始做下一道了。