美文网首页
二. 栈2 使括号匹配

二. 栈2 使括号匹配

作者: 何大炮 | 来源:发表于2018-04-10 11:16 被阅读0次

Idea:
这道题让我想起了那道最基础的括号匹配问题,此题实际上就是在问,是否能够找到一次位置交换,使得整个string是一个合法的括号匹配。

def bracket(string):
    stack = []
    position_1 = []
    length = len(string)
    i = 0
    while i < length:
        # 每一个括号的位置来源
        position_1.append(i+1)
        # 将括号加入栈
        stack.append(string[0])
        # 在原string里去除被加入栈的括号
        string = string[1:]
        # 表示又处理了一个括号
        i += 1

        value = True
        while value and string:
            if stack[-1] == "(" and string[0] == ")":
                # 在原string里去除被加入已匹配的括号
                string = string[1:]
                # 该括号出栈
                stack.pop()
                # 对应位置出栈
                position_1.pop()
                # 表示又处理了一个括号
                i += 1
                if not stack or not string:
                    value = False
            else:
                value = False

    if len(position_1) ==2 and stack[0] != stack[1]:
        return True
    else:
        return False

相关文章

  • 二. 栈2 使括号匹配

    Idea:这道题让我想起了那道最基础的括号匹配问题,此题实际上就是在问,是否能够找到一次位置交换,使得整个stri...

  • 2019-05-12(栈应用 括号匹配 leetcode 20

    括号匹配思路: 1、遇到左边的括号 进栈 ,2、遇到右边的括号获取原来栈 中栈顶元素,与刚遇到的值进行匹配,匹配成...

  • chap3-栈和队列

    括号匹配问题 // 括号匹配,遇到 '\0' 结束// 遇到花、中、圆左括号进栈,遇到花、中、圆右括号检查栈顶元素...

  • 20. Valid Parentheses

    使用栈数据结构: 遇到左括号,需要压栈。 遇到右括号,判断栈顶是否和当前右括号匹配;若不匹配则返回false,否则...

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

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

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

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

  • 20. 有效的括号

    自己解法 括号匹配问题,第一想法就是使用栈,左括号入栈,遇到匹配的右括号出栈,如果中间有不符合的右括号,直接返回f...

  • 数据结构总结

    严蔚敏版总结 一.线性表 数组形式 链表形式 二.栈和队列 1.顺序栈 2.栈的应用 ①数制转换 ②括号匹配 ...

  • 检测成对括号

    检测成对出现的括号 利用栈的知识点遍历字符串,遇到左括号进栈,右括号出栈进出栈的括号不匹配则 return false

  • 栈、队列解决问题

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

网友评论

      本文标题:二. 栈2 使括号匹配

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