判断字符串括号{}[]()是否闭合—python实现
程序员文章站
2022-04-27 17:00:29
最近面试字节跳动的游戏发行测试工程师的时候,面试官出了这道题(本人致力于算法和数据方面的测试,无意做游戏方面的测试工作,好像是猎头给投的简历)判断字符串闭合是一道经典的面试题,首先要知道什么样的括号是闭合的:{[{()}]()}就是一个闭合的字符串。{[{()}]([)]}这个里面([)]括号不对称,这种就是不闭合。常见的解法是使用栈进行判断,代码如下: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