题解 | 括号配对问题

括号配对问题

https://www.nowcoder.com/practice/57260c08eaa44feababd05b328b897d7

import sys
import re

def replacement(string:str):
    if string == ')':
        return '('
    elif string == ']':
        return '['

for line in sys.stdin:
    stack = []
    a = line.split()
    res = re.sub(r'[^\[\]\(\)]','',a[0])
    # print(res)
    flag = True
    for i in res:
        if len(stack) == 0:
            if i == '[':
                stack.append(i)
                continue
            elif i == '(':
                stack.append(i)
                continue
            else:
                flag = False
                break
        if replacement(i) ==stack[-1]:
            stack.pop()
        elif i == '[' or i == '(':
            stack.append(i)
        else:
            flag = False
            break
    if flag:
        print('true')
    else:
        print('false')

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务