热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《有效的括号》算法日记2021.7.12,每天一道算法题,怒刷Leetcode

给定一个只包括(,),{,},[,]的字符串s,判断字符串是否有效。有效字符串需满足&#

"""
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。示例 1:输入:s = "()"
输出:true
示例 2:输入:s = "()[]{}"
输出:true
示例 3:输入:s = "(]"
输出:false
示例 4:输入:s = "([)]"
输出:false
示例 5:输入:s = "{[]}"
输出&#xff1a;true提示&#xff1a;1 <&#61; s.length <&#61; 104
s 仅由括号 &#39;()[]{}&#39; 组成来源&#xff1a;力扣&#xff08;LeetCode&#xff09;
链接&#xff1a;https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权&#xff0c;非商业转载请注明出处。
"""
> ***该方法由之前读过的算法中的双栈计算运算符的思路去解。***def symbol(str1):if len(str1) % 2 !&#61; 0: # 当字符串不为偶数时候&#xff0c;该返回值一定为Falsereturn Falseleft_list &#61; [] # 生成一个列表for i in str1: if i &#61;&#61; "(" or i &#61;&#61; "[" or i &#61;&#61; "{": # 当发现括号为左括号时候&#xff0c;添加到对应的list中left_list.append(i)else: # 当有右括号时候&#xff0c;去取出左边括号的最后一个元素比对是否为左右互为一对的状态&#xff01;if left_list: # 如果是一对的状态&#xff0c;则可以互相抵消。if i &#61;&#61; ")" and left_list.pop() !&#61; "(":return Falseif i &#61;&#61; "]" and left_list.pop() !&#61; "[":return Falseif i &#61;&#61; "}" and left_list.pop() !&#61; "{":return Falseelse:return Falseif left_list:return Falsereturn Trueprint(symbol(")("))
# print(symbol("([{()}])"))

在这里插入图片描述


推荐阅读
author-avatar
我要减肥2502896373
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有