Valid Parentheses

本文介绍如何利用栈数据结构解决字符串中括号匹配的问题。通过遍历输入字符串,将左括号压入栈中,遇到右括号时检查栈顶是否匹配,最终判断栈是否为空来确定字符串是否有效。时间复杂度为O(n),空间复杂度也为O(n)。
摘要由CSDN通过智能技术生成

Intuition

when we travel the string we want to see the string are matched or not so we have to use stack to solve this problem

Approach

we can implement a stack to store the character if the character placed in left then put it in stack if not check the current character and the top of the stack if they are not matched return false if not pop the top character when the iteration finished check the stack if it is empty if it is return true else return false

Complexity

  • Time complexity:

O(n)

  • Space complexity:

O(n)

Code

class Solution:
    def isValid(self, s: str) -> bool:
        stack=[]
        for c in s:
            if c in '([{':
                stack.append(c)
            else:
                if not stack or \
                (c==')' and stack[-1]!='(') or \
                (c=='}' and stack[-1]!='{') or \
                (c==']' and stack[-1]!='['):
                    return False
                stack.pop()

        return not stack
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值