检查简单括号匹配的Python程序

2023-12-01

我遇到了这个检查给定字符串中的简单括号“(”,“)”是否均匀匹配的练习。

我在这里看到了使用 stack 命令的示例,但我还没有遇到过。所以我尝试了一种不同的方法。谁能告诉我哪里出错了?

def matched(str):
    ope = []
    clo = []
    for i in range(0,len(str)):
        l = str[i]
        if l == "(":
            ope = ope + ["("]
        else:
            if l == ")":
                clo = clo  + [")"]
            else:
                return(ope, clo)
    if len(ope)==len(clo):
        return True
    else:
        return False

这个想法是将“(”和“)”堆积成两个单独的列表,然后比较列表的长度。我还有另一个版本,我在列表 ope 和 clo 中附加了分别包含 ( 或 ) 的相关 I 。


下面是一种稍微优雅的方法。它清理了 for 循环并用一个简单的计数器变量替换了列表。如果计数器降到零以下,它也会返回 falsematched(")(")将返回False.

def matched(str):
    count = 0
    for i in str:
        if i == "(":
            count += 1
        elif i == ")":
            count -= 1
        if count < 0:
            return False
    return count == 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查简单括号匹配的Python程序 的相关文章

随机推荐