Leetcode20 python有效的括号
2019-02-26 10:22
387 查看
题意:给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
括号必须以正确的顺序关闭,”()” 和 “()[]{}” 是有效的但是 “(]” 和 “([)]” 不是。
方法:利用入栈(列表)出栈的方式,依次遍历字符串,每一次遍历,前一次入栈的字符会弹出,与前一次的字符比较,如果不同,则直接判断为false,如果相同,则继续遍历。如果最终字符串为空,则判为true,不为空则判为false。
if len(s) % 2 == 1 or len(s) == 0: #如果字符串长度为奇数或者0则直接判断不匹配 return False d = {'{': '}', '[': ']', '(': ')'} stack = [] for i in s: #遍历字符串 # in stack if i in d: #入栈操作 stack.append(i) else: if not stack or d[stack.pop()] != i: #出栈与当前遍历值判断 return False ``` else: if stack: return False return True ``` return stack ==[]#优化,以上四条语句可以用这条语句替代
优化方法
class Solution: def isValid(self, s: str) -> bool: if len(s) % 2 == 1 or len(s) == 0: #如果字符串长度为奇数或者0则直接判断不匹配 return False a = {')':'(', ']':'[', '}':'{'} l = [None] #此时列表长度为1 for i in s: if i in a and a[i] == l[-1]: l.pop() else: l.append(i) return len(l)==1
相关文章推荐
- [leetcode]20. Valid Parentheses ,有效的括号符串python实现【easy】
- Leetcode做题日记:20. 有效的括号 (PYTHON)
- LeetCode题解(python)-20. 有效的括号
- leetcode20 有效的括号
- 利用python 完成 leetcode 32 最长有效括号
- leetcode20 Valid Parentheses 有效的括号
- LeetCode 20. 有效的括号(java)
- Leetcode刷题记——20. Valid Parentheses (有效的括号即括号匹配)
- 【刷算法】LeetCode.20-有效的括号
- Leetcode 20: 有效的括号(Valid Parentheses)
- Leetcode20. 有效的括号
- leetcode---20有效的括号
- leetcode 括号组合题目 20 是否是有效括号 32 最大有效括号 301 去掉无效括号
- LeetCode 20. 有效的括号
- 【LeetCode】20 Valid Parentheses 有效括号
- leetcode刷题之20.有效的括号
- LeetCode - 20. 有效的括号
- LeetCode 20 Valid Parentheses(有效的括号)
- Leetcode(20)有效的括号
- LeetCode-20-Valid Parentheses(有效的括号)