括号配对检测 A_Python123

括号配对检测 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("配对不成功")

你可能感兴趣的:(Python123,python,算法)