当前位置: 移动技术网 > IT编程>脚本编程>Python > 判断字符串括号{}[]()是否闭合—python实现

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

2020年07月14日  | 移动技术网IT编程  | 我要评论
最近面试字节跳动的游戏发行测试工程师的时候,面试官出了这道题(本人致力于算法和数据方面的测试,无意做游戏方面的测试工作,好像是猎头给投的简历)判断字符串闭合是一道经典的面试题,首先要知道什么样的括号是闭合的:{[{()}]()}就是一个闭合的字符串。{[{()}]([)]}这个里面([)]括号不对称,这种就是不闭合。常见的解法是使用栈进行判断,代码如下:def is_str_close(a): b = [] flag = True for i in a: ...

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

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

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

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网