Leetcode练习<二十>判断括号的有效性
来源:互联网 发布:怎么联系淘宝客服 编辑:程序博客网 时间:2024/06/14 03:51
@greg 2017-08-23
判断字符串中的括号是否为成对的 –> () {} [] {([])} 均为有效的
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’,
determine if the input string is valid.
The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.
class Solution(): ''' 首先生成一个空列表和一个字典,字典中的键和值分别为各种括号的右边和左边的样式, 首先判断字符是否属于字典中的值, 如果属于字典中的值,则加入列表中, 如果不是判断是否属于字典的键,此时再进行判断: 如果列表为空,因为该字符是括号的右边样式,如果列表为空,则说明没有与其配对的左边样式,所以为False 如果列表为中的最后一个元素与该字符在字典中对应的键不相等(即该字符不能和列表的最后一个键配对),则返回False 如果字符不属于字典中的值,则为False 注意,每调用一次stack.pop(),stack中的最后一个字符就会弹出一次,也就是说如果所有的都成对,则最后列表是空的 ''' def isValid(self, s): stack = [] dict = {'}' : '{', ']' : '[', ')' : '('} for char in s: if char in dict.values(): stack.append(char) elif char in dict.keys(): if stack == [] or dict[char] != stack.pop(): return False else: return False return stack == [] def isValid1(self, s): stack = [] dict = {'{' : '}', '(' : ')', '[' : ']'} for char in s: if char in dict.keys(): stack.append(dict[char]) print(1, char, stack) elif stack == [] or char != stack.pop(): print(2, char, stack) return False return stack == []if __name__ == '__main__': s = Solution() str = '}{' print(s.isValid1(str))
阅读全文
0 0
- Leetcode练习<二十>判断括号的有效性
- 括号的有效性
- 字符串之括号的有效性
- 日期有效性的判断
- 华为练习1 IP地址判断有效性
- 合法括号序列判断练习
- PE文件的有效性判断
- Java判断IPv4的有效性
- Swift判断API的有效性
- LeetCode OJ 之 Valid Parentheses(有效的括号判断)
- leetcode 678. Valid Parenthesis String 有效括号的判断
- LeetCode练习<一> 判断大写字母的位置
- 字符串问题---括号字符串的有效性和最长有效长度
- 括号字符串的有效性和最长有效长度
- 括号字符串的有效性和最长有效长度
- [javascript]判断email地址的有效性
- JS 代码判断时间的有效性
- 括号序列的判断
- Objective
- Count the Colors -----超详细的线段树的区间染色题解(线段树原来操作可以这么骚Q&_&Q)
- NYOJ 837-Wythoff Game
- JavaMail给本地邮箱发邮件
- 直线检测研究
- Leetcode练习<二十>判断括号的有效性
- 职业规划--当下的规划
- Linux执行ls,会引起哪些系统调用
- Android adb 命令总结_持续更新
- spark standalone集群模式搭建
- 【网络编程】MarioTCP 流程图(一)
- 查看MySql的版本
- 主成分分析(PCA)和基于核函数的主成分分析(KPCA)入门
- PowerDesigner中设置数据库类型,设置default value,Comment,自增属性,以及数据库设计中的需要考虑的示项,带有小数点的数据显示