题解 | #奶牛名字解码#

奶牛名字解码

https://www.nowcoder.com/practice/5b61b03a4842422a8273bcfeddb50b80

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return string字符串
#
class Solution:
    def decodeCowName(self , s: str) -> str:
        # write code here
        #用栈来解码
        stack=[] 
        current_num=0 #用于存储当前的数字
        current_str='' #用于存储当前的字符

        for char in s:
            if char.isdigit():
                current_num= current_num*10 + int(char) #如果是数字则将数字累加到current_num中
            elif char == '[':
                #如果是'['则吧当前数字和current_char压入栈中,并把当前数字和字符清零
                stack.append((current_num,current_str))
                current_num=0
                current_str=''
            elif char ==']':
                #如果是']',则出栈
                num,pre_char=stack.pop()
                current_str = pre_char + current_str*num
            else:
                current_str += char
        return current_str

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务