括号配对检测 A

it2023-08-07  64

括号配对检测 A


用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确,配对成功与否分别输出:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

配对成功,配对不成功‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

其中,小括号配对要考虑配对顺序,即()表示配对,)(不是配对,只考虑小括号配对。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意,这是一个OJ题目,获得输入使用input("")。


算法: 通过标志位来判断左右括号是否准确配对 初始标志位left=0,遇见左括号加1,遇见右括号减1。 当left>0,左括号数目大于右括号 当left=0,左右括号数目正好配对 当left<0,出现先右括号的情况,此时一定配对失败

代码:

st=input()#获得输入字符串 left=0#标志左括号个数,先左后右,遇左加1,遇右减1; for x in st:#遍历st中的字符 if x=="(": left+=1 if x==")": left-=1 if left<0: #left<0此时表示存在括号先右边后左,即直接判定匹配不成功 print("配对不成功") break else: if left == 0:#最终结果进行判断 print("配对成功") else: print("配对不成功")
最新回复(0)