leetcode--有效括号

在这里插入图片描述
根据题意,我们可以推断出以下要点:

有效括号字符串的长度,一定是偶数!
右括号前面,必须是相对应的左括号,才能抵消!
右括号前面,不是对应的左括号,那么该字符串,一定不是有效的括号!

题解:https://leetcode.cn/problems/valid-parentheses/solution/guan-fang-tui-jian-ti-jie-you-xiao-de-gu-zyzg/
看了一下题解,思路很简单,就是用列表模拟栈存储左括号,用字典将右括号作为键,左括号作为值;
首先先判断是左括号还是右括号,左括号放入栈,是右括号的话,与栈中的左括号进行匹配,匹配成功后将栈中的左括号pop出来
代码:

def isValid(s):
	if len(s)&1 != 0:
		return False
	dicts = {
		"}": "{",
		"]": "[",
		")": "(",
	}
	stack = []
	for i in s:
		if i not in dicts:
			stack.append(i)
		else:
			if stack[-1] != dicts[i] or not stack:
				return False
			stac.pop()
	return not stack

我自己的解法,比较暴力:

def isValid(s):
	while "{}" in s or "[]" in s or "()" in s:
		s = s.replace("{}", "")
		s = s.replace("[]", "")
		s = s.replace("()", "")
	return s == ""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值