5 条题解

  • 1
    @ 2023-11-7 10:46:38

    Python 有一个需要注意的点,如果出现了类似")("的情况如果只判断左右括号数量是否相等是会出问题的,因此要判断出否出现过这种情况即top是否小于过-1

    express = input()
    top = -1
    flag = True
    for ch in express:
        if ch == '(':
            top = top + 1
        
        elif ch == ')':
            top = top - 1
            if top < -1:
                flag = False
    
    if top == -1 and flag:
        print('YES')
    
    else:
        print('NO')
    
    • 1
      @ 2023-11-7 10:40:38

      都是大佬捏

      st=[""]*100
      top=-1
      s=input()
      for i in s:
          if i=='(':
              top+=1
              st[top]=i
          elif i==')':
              if top==-1:
                  print('NO')
                  top=-2
                  break
              else:
                  top-=1
      if top>-1:
          print('NO')
      elif top==-1:
          print('YES')
      
      • @ 2024-6-4 16:10:19

        2024.6.4号题解,总体上没太大区别。

        st=[""]*100
        top=-1
        s=input()
        f=1
        for i in s:
            if i=='(':
                top+=1
                st[top]=i
            elif i==')':
                if top!=-1:
                    top-=1
                else:
                    f=0
                    break
        if f and top==-1:
            print("YES")
        else:
            print("NO")
        
    • 1
      @ 2023-11-7 10:02:02

      括号匹配用栈实现,遇到左括号直接入栈,遇到右括号判断栈是否为空,为空则直接退出,不为空再出栈

      a=input()
      top=-1
      s=[""]*255
      flag = True
      for i in a:
          if i == "(" : 
              top += 1
              s[top] = 1
          elif i == ")":
              if top == -1 : 
                  flag = False
              s[top] = 0
              top -= 1
      if top == -1 and flag :
          print("YES")
      else:
          print("NO")
      
      
      
      • 1
        @ 2023-11-7 9:52:31

        【栈】表达式括号匹配(stack){\large\color{#92a1e8}【栈】表达式括号匹配(stack)}

        一个基础的栈

        难度:入门\texttt{\color{#e51211}难度:入门} easy\textit{\small\color{#e51211}easy}

        last update:2023/11/7

        更多帮助


        Python{\large\color{#52a1e8}Python:}

        st=[""]*100
        top=0
        s=input()
        flag=True
        for i in range(len(s)):
            if s[i]=='(':
                top+=1
            if s[i]==')':
                top-=1
            if(top<0):
                flag=False
                break
        if(flag==True and top==0):
            print("YES")
        else:
            print("NO")
        
        • -2
          @ 2024-10-28 14:08:32
          st=[""]*100
          top=-1
          flag=True
          s=input()
          for i in range(len(s)):
              if s[i]=="(":
                  top+=1
                  st[top]="("
              elif s[i]==")":
                  if top==-1:
                      flag=False
                      break
                  else:
                      top-=1
          if top>=0:
              flag=False
          if flag:
              print('YES')
          else:
              print("NO")            
          
          • 1

          信息

          ID
          275
          时间
          1000ms
          内存
          128MiB
          难度
          7
          标签
          递交数
          1066
          已通过
          250
          上传者