栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

力扣简单括号匹配算法题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣简单括号匹配算法题

给定一个只包括 ‘(’ ’)’ ’{’ ’}’ ’[’ ’]’ 的字符串 s 判断字符串是否有效。

有效字符串需满足

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

例一
输入 s “()”
输出 true
- 例二
输入 s “([)]”
输出 false

提示

1 s.length 104
s 仅由括号 ‘()[]{}’ 组成

class Solution:
 def isValid(self, s: str) - bool:
 #定义一个列表用来存放括号 相当于一个栈
 a []
 #定义一个字典类型 通过右括号找到左括号
 stock { ) : ( , } : { , ] : [ }
 for i in s:
 #如果列表不为空并且括号在字典中
 if a and i in stock:
 #如果栈顶元素 左括号 出栈 否则不匹配
 if a[-1] stock[i]:
 a.pop()
 else:
 return False
 #如果栈空 则进栈
 else:
 a.append(i)
 #如果最后栈不为空 则匹配失败
 if len(a)! 0:
 return False
 return True
class Solution {
 public boolean isValid(String s) {
 //定义一个栈
 Stack Character stack new Stack ();
 //定义一个字符数组
 char[] charArray s.toCharArray();
 //循环数组的每一个字符
 for(char ch:charArray){
 //如果是左括号直接进栈
 if(ch ( || ch [ || ch { ){
 stack.push(ch);
 }else{
 //如果是右括号 并且栈不为空
 if(!stack.isEmpty()){
 if(ch ) ){
 //如果栈顶不匹配返回false
 if(stack.pop()! ( ){
 return false;
 else if(ch ] ){
 if(stack.pop()! [ ){
 return false;
 else{
 if(stack.pop()! { ){
 return false;
 //如果栈为空
 else{
 return false;
 return stack.isEmpty();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号