什么是字符串闭合?对编程有一丁点了解的朋友都知道是什么情况,大部分的编程语音都有闭合一说,表示一段逻辑从开始到结束,简单点说,闭合就是括号要成对出现。
今天给大家带来的是一个大厂的面试题。
判断一段代码中的括号是否闭合,如:
{{()}}, {[()()[]]} 就是闭合的字符串。
{{()}]} 这个里面 ([)] 括号不对称,这种就是不闭合
分析:
这个题要完成,主要是if多分支判断,以及列表中的pop()函数功能
pop() #移除列表中的一个元素,默认最后一个,并返回这个元素对象
下面分享我写的一段代码
#coding:utf-8 def is_str_close(codejs): flag=1 k_left=[] for i in codejs: if i=='[' or i=='(' or i=='{': k_left.append(i) elif i ==']': if len(k_left) ==0 or k_left.pop()!='[': flag=0 elif i ==')': if len(k_left) ==0 or k_left.pop()!='(': flag=0 break elif i =='}': if len(k_left) ==0 or k_left.pop()!='{': flag=0 if flag==0 or len(k_left)!=0: print('没有闭合') else: print('闭合') if __name__ == '__main__': a='{{()}}' b='{{()}]}' c='{[()()[]]}' is_str_close(a) is_str_close(b) is_str_close(c)
输出结果如下:
>>闭合
>>没有闭合
>>闭合
标签: