本文主要是介绍【力扣100】394.字符串解码 || 字符串中判断数字是否大于10,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
添加链接描述
思路:
- res用来记录每一次遇到
[
前的找到的字符串总共是什么 - stack里储存的是
[ 当前找到的重复变数,这个重复变数之前的字符串 ]
- 在遇到
]
后,从stack中弹出一组,对应的是:当前这个[]
里需要重复的变数,和之前的字符串,并进行拼接 - 最后返回字符串res
细节:
- 因为无法确认重复变数是否大于10,所以只要找到数字,就要
num=num*10+int(i)
来确保这一点。
class Solution:def decodeString(self, s: str) -> str:stack,res,num=[],"",0for i in s:if '0'<=i and i<='9':num=num*10+int(i)elif i=='[':stack.append([num,res])num,res=0,''elif i==']':cur_num,last_res=stack.pop()res=last_res+cur_num*reselse:res=res+ireturn res
这篇关于【力扣100】394.字符串解码 || 字符串中判断数字是否大于10的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!