Auth:Terry_h
Time:2019-08-03
Target:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
Summary:
【注】有效字符串需满足以下三点:
(1)左括号必须用相同类型的右括号闭合。
(2)左括号必须以正确的顺序闭合。
(3)注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
def valid_parenthesis(x):
'''
x:输入的字符串
return:返回字符串中的括号是否有效
'''
lis = []
parenthesis = "()[]{}"
for i in range(len(x)):
# 如果不是括号则继续,如果是括号则大于等于0
if parenthesis.find(x[i]) == -1:
continue
# 左括号入栈
if s[i] == '(' or x[i] == '[' or x[i] == '{':
lis.append(x[i])
continue
# 如果一个左括号都没有,则返回False
if len(lis) == 0:
return False
# 出栈比较是否匹配
p = lis.pop()
if (p == '(' and x[i] == ')') or (p == '[' and x[i] == ']') or (p == '{' and x[i] == '}'):
continue
else:
return False
if len(lis) > 0:
return False
return True
【注】以上题目出自
有效的括号 - 力扣(LeetCode)leetcode-cn.com作者仅提供编程思路,还望各位码农届的大佬多多指导,互相交流!