leetcode刷题之 20. 有效的括号
2019-06-25 16:17
246 查看
leetcode刷题之 20. 有效的括号
-
题目:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。 -
示例 :
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
示例 4:
输入: “([)]”
输出: false
示例 5:
输入: “{[]}”
输出: true -
代码1:
class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ for i in range(len(s)): s=s.replace("()",'') s=s.replace("[]",'') s=s.replace("{}",'') return s == "" # 执行用时 : 84 ms, 在Valid Parentheses的Python提交中击败了2.41% 的用户 # 内存消耗 : 11.8 MB, 在Valid Parentheses的Python提交中击败了2.24% 的用户
- 算法说明:
直接判断括号的匹配,然后删除,即判断是否存在“()”、“[ ]”、“{}”,如果存在直接删除,判断最后是否为空! - 代码2:
class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ s = list(s) a = [0] if s == []: return True if s[0] == ']' or s[0] == ')' or s[0] == '}': return False for i in range(len(s)): if s[i] == '(' or s[i] == '[' or s[i] == '{': a.append(s[i]) continue if s[i] == ')' and a[-1] == '(': a.pop() continue if s[i] == ')' and a[-1] != '(': return False if s[i] == ']' and a[-1] == '[': a.pop() continue if s[i] == ']' and a[-1] != '[': return False if s[i] == '}' and a[-1] == '{': a.pop() continue if s[i] == '}' and a[-1] != '{': return False return len(a) == 1 # 执行用时 : 36 ms, 在Valid Parentheses的Python提交中击败了16.72% 的用户 # 内存消耗 : 11.8 MB, 在Valid Parentheses的Python提交中击败了2.24% 的用户
- 算法说明:
利用栈的思想判断,( )、{ }、[ ]。左括号入栈,右括号出栈!最后判断栈是否为空!
相关文章推荐
- Python LeetCode(20.有效的括号)
- Leetcode刷题记——20. Valid Parentheses (有效的括号即括号匹配)
- leetcode---20有效的括号
- LeetCode 20. Valid Parentheses--验证括号是否有效
- leetcode20 有效的括号
- Leetcode20. 有效的括号
- LeetCode题解(python)-20. 有效的括号
- leetcode 20 有效的括号
- LeetCode 20 Valid Parentheses(有效的括号)
- LeetCode 20. 有效的括号
- LeetCode-20 有效的括号
- LeetCode 20.有效的括号
- 【LeetCode】20 Valid Parentheses 有效括号
- LeetCode 题 - 20. 有效的括号
- leetcode 括号组合题目 20 是否是有效括号 32 最大有效括号 301 去掉无效括号
- Leetcode20 python有效的括号
- [Leetcode] 20题 有效的括号
- Leetcode:20 有效的括号
- LeetCode 20 有效的括号 c语言
- LeetCode-20-Valid Parentheses(有效的括号)