常州市天宁区建设局网站,前端培训机构推荐,微信营销的10种方法技巧,内网网站建设的必要性20. 有效的括号 题目-简单难度示例1. if-else2. 优化3. 字典栈 题目-简单难度
给定一个只包括 ‘(’#xff0c;‘)’#xff0c;‘{’#xff0c;‘}’#xff0c;‘[’#xff0c;‘]’ 的字符串 s #xff0c;判断字符串是否有效。 有效字符串需满足#xff1a; 左括… 20. 有效的括号 题目-简单难度示例1. if-else2. 优化3. 字典栈 题目-简单难度
给定一个只包括 ‘(’‘)’‘{’‘}’‘[’‘]’ 的字符串 s 判断字符串是否有效。 有效字符串需满足 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 示例
示例 1 输入s “()” 输出true 示例 2 输入s “()[]{}” 输出true 示例 3 输入s “(]” 输出false 提示 1 s.length 104s 仅由括号 ‘()[]{}’ 组成 来源力扣LeetCode 链接https://leetcode.cn/problems/summary-ranges 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
1. if-else
时间 24ms 击败 37.49%使用 Python 的用户 内存 13.28mb 击败 5.01%使用 Python 的用户
class Solution(object):def isValid(self, s)::type s: str:rtype: boolstack []for i in range(len(s)):if s[i] ( or s[i] { or s[i] [:stack.append(str(s[i]))elif s[i] ):if stack and stack[-1] (:stack.pop()else:stack.append(str(s[i]))elif s[i] ]:if stack and stack[-1] [:stack.pop()else:stack.append(str(s[i]))elif s[i] }:if stack and stack[-1] {:stack.pop()else:stack.append(str(s[i]))if len(stack) ! 0:return Falseelse:return True2. 优化
时间 16ms 击败 84.60%使用 Python 的用户 内存 12.67mb 击败 88.66%使用 Python 的用户
class Solution(object):def isValid(self, s)::type s: str:rtype: bool# 左边框left [(,{,[]# 如果起始不是左边框直接falseif s[0] not in left:return False;l len(s)st []i 0while (i l):# 分类判断如果栈为空添加if (not st):st.append(s[i])# 如果栈顶的值可以和当前s索引的值匹配成完整括号栈顶直接popelif (s[i] ] and st[-1] [) or (s[i] } and st[-1] {) or (s[i] ) and st[-1] ():st.pop()# 其他情况添加到栈else:st.append(s[i])# print(st)i1return True if len(st) 0 else False3. 字典栈
时间 20ms 击败 61.65%使用 Python 的用户 内存 12.74mb 击败 71.91%使用 Python 的用户
class Solution(object):def isValid(self, s)::type s: str:rtype: booldic {{:},(:),[:]}st []for i in s:# 判断栈不为空并且st[-1]是左边框再判断i是不是要找的右边框if st and st[-1] in dic and dic[st[-1]] i:st.pop()else:st.append(i)return True if len(st) 0 else False