java判断括号是否闭合_Python 有效的括号_code

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
577bca799d66dac30c02eaa741f251d8.png

作者仅提供编程思路,还望各位码农届的大佬多多指导,互相交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值