判断字符串括号{}[]()是否闭合—python实现

2022-08-04,,,,

最近面试字节跳动的游戏发行测试工程师的时候,面试官出了这道题(本人致力于算法和数据方面的测试,无意做游戏方面的测试工作,好像是猎头给投的简历)

判断字符串闭合是一道经典的面试题,首先要知道什么样的括号是闭合的:{[{()}]()} 就是一个闭合的字符串。
{[{()}]([)]} 这个里面 ([)] 括号不对称,这种就是不闭合。

常见的解法是使用栈进行判断,代码如下:

def is_str_close():
    a = "{[()]}"
    b = []
    flag =0
    
    for i in a :
        if i=="{" or i=="[" or i=="(":
            b.append(i)
        elif i=="}" and b.pop()!="}":
            flag =1 
        elif i=="]" and b.pop()!="]":
            flag =1 
        elif i==")" and b.pop()!=")":
            flag =1 
    if len(b)!=0:
        flag=1 
    
    if flag==1:
        print("不闭合")
    elif flag==0:
        print("闭合")

还有一种是不用栈的写法,我觉得这种写法更简单更易于理解:

def is_str_close(a:string):
    a = "{[()]}"
    s1,s2,s3=0,0,0
    for i in range a:
        if i=="{":
            s1 += 1
        if i=="[":
            s2 += 1 
        if i=="(":
            s3 += 1 
        if i=="}":
            s1 -= 1
        if i=="]":
            s2 -= 1 
        if i==")":
            s3 -= 1 
    if s1!=0 or s2!=0 or s3!=0:
        print("不闭合")
    else:
        print("闭合")  
        

参考文章:

判断字符串括号是否闭合(){}[]

python笔记45-经典面试题:判断字符串括号是否闭合{}[]()

 

本文地址:https://blog.csdn.net/sanmi8276/article/details/107307925

《判断字符串括号{}[]()是否闭合—python实现.doc》

下载本文的Word格式文档,以方便收藏与打印。