美文网首页
字符串的括号匹配(python)

字符串的括号匹配(python)

作者: Jackpot_0213 | 来源:发表于2021-08-06 17:26 被阅读0次

括号匹配说明

  • 本方法字符串中只有 () 括号

算法思路

  • 从左到右遍历字符串
  • 如果不是括号,默认是有效字符,遍历下一个字符
  • 如果是左括号,左括号进入栈,遍历下一个字符
  • 如果是右括号
    • 当前栈是否还有左括号
    • 没有则匹配失败
    • 有,出栈比较是否匹配
  • 如果出栈的字符和当前字符匹配为一对括号,遍历下一个
  • 不匹配,则匹配失败
  • 遍历完毕后,判断栈中是否还有剩余左括号
    • 没有,匹配成功
    • 有,说明有多余左括号,匹配失败

python代码

def is_encode(str):
    # 放左右括号的栈
    bracket = '()'
    open_brackets = []
    close_brackets = [')']
    # 见一个右括号就出一个左括号
    for i in range(len(str)):
        si = str[i]
        # 如果不是括号,下一个
        if bracket.find(si) == -1:
            continue
#       如果是左括号就入栈
        if si == '(':
            open_brackets.append(si)
            continue
        # 走下下面说明就是右括号了,因为上面已经排除了不是字母和左括号了
        if len(open_brackets) == 0:
            # 现在来了个右括号,但是没有匹配的了
            return False
        #上面排除了各种情况,现在开始正常匹配了
        p = open_brackets.pop()
        if p =='(' and si ==')':
            continue
        else:
            return False

    #判断是否还有多余的左括号呀
    if len(open_brackets) > 0:
        return False
    return True

相关文章

  • 栈、队列解决问题

    栈解决括号匹配问题 一个字符串中包含小括号、中括号、大括号,判断该字符串中的括号是否匹配 ()()[]{} 匹配...

  • 字符串的括号匹配(python)

    括号匹配说明 本方法字符串中只有 () 括号 算法思路 从左到右遍历字符串 如果不是括号,默认是有效字符,遍历下一...

  • 正则表达式

    正则表达式采用贪婪匹配模式以下实例为了匹配字符串booooooooob 括号用于提取字符串: 中括号中的^表示“非...

  • 算法---括号匹配

    给一个括号字符串序列,判断所有的括号是否匹配

  • [LeetCode OJ]- Valid Parenthese

    题目要求:给定一个包含六种括号的字符串,判断这个字符串是否为匹配的字符串。这六种括号包括:(){}【】 匹配的字符...

  • 互联网秋招刷题leetcode总结——栈与队列

    栈 括号类问题 20. 有效的括号(easy) 遍历字符串,每次与栈顶括号进行匹配,匹配成功栈顶弹出,否则继续压入...

  • 利用栈解决括号匹配问题

    遍历字符串,遇到左括号,入栈。遇到有括号,出栈。遍历完后,如果栈中还有元素就说明括号不匹配,否则匹配。 demo地...

  • 正则表达式简单语法及常用正则表达式

    基本符号:^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符...

  • 正则匹配

    1,字符串匹配括号里内容 2,匹配以window.wingxViewData[0]= 开头 结尾之间的内容

  • 提取匹配内容

    正则表达式匹配字符串并提取正则匹配的内容 this.([a-zA-z]+) = 1 代表第一个括号内匹配的字符串

网友评论

      本文标题:字符串的括号匹配(python)

      本文链接:https://www.haomeiwen.com/subject/iphivltx.html