本文主要是介绍Python | Leetcode Python题解之第394题字符串解码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
class Solution:def decodeString(self, s: str) -> str:stk = []for ss in s:# 不是"]",照单全收,进栈if ss!="]":stk.append(ss)else:# 遇到"]",把"[]"裹起来的单词取出,记为wordword = ""while stk[-1]!="[":word = stk.pop() + word# 弹出"["stk.pop()# 因为会有大于10的次数,所以再写一个while,得到次数,如100cnt = 0t = 1while len(stk) > 0 and ord("0") <= ord(stk[-1]) <=ord("9"):cnt += int(stk.pop()) * tt *= 10# 得到重复的字符串后,继续压入栈_s = cnt * wordstk.extend(list(_s))#for _ss in _s:# stk.append(_ss)return "".join(stk)
这篇关于Python | Leetcode Python题解之第394题字符串解码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!