0x3f 第43天 黑马点评全量复习一遍 + 栈两题

1.最小栈:

解法:栈里存的都是二元组( x,y)x是当前存入栈的元素,y是当前栈最小元素,这样既可以O(1)弹出当前元素,也可以O(1)弹出栈内最小元素

复制代码
class MinStack:

    def __init__(self):
        self.st = [(0,inf)]

    def push(self,val:int)->None:
        self.st.append((val,min(val,self.st[-1][1])))
    
    def pop(self):
        self.st.pop()

    def top(self)->int:
        return self.st[-1][0]
    
    def getMin(self)->int:
        return self.st[-1][1]

2.字符串解码

核心思路:遇到 就进入递归,遇到就break结束这层递归,递归前遇到数字记录下来k,技巧k = k*10+int(c)

复制代码
class Solution:
    def decodeString(self, s: str) -> str:
        i = 0
        def decode():
            nonlocal i
            res = []
            k = 0
            while i<len(s):
                c = s[i]
                i += 1
                if c.isalpha():
                    res.append(c)
                elif c.isdigit():
                    k = k*10+int(c)
                elif c=='[':
                    res.append(decode()*k)
                    k = 0
                else:
                    break
            return ''.join(res)
        return decode()

黑马点评从头看了一遍笔记,回顾了一下,准备开始新阶段了兄弟们

相关推荐
用户8356290780517 小时前
使用 Python 操作 Word 内容控件
后端·python
LDR0067 小时前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术7 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
通信小呆呆7 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
码云数智-园园7 小时前
C++20 Modules 模块详解
java·开发语言·spring
benben0447 小时前
强化学习之DQN算法族(基于gymnasium开发)
算法
swordbob7 小时前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
小小工匠8 小时前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化