第五章 栈与队列part02

发布时间 2023-12-09 20:34:57作者: 晴夜空

第五章 栈与队列**part02**

 

20. 有效的括号

 

Code :

 

class Solution {
public:
   bool isValid(string s) {
       stack<char> stack_Symbol ;   //   (what we really need do Now ) , 现在 需要 我们 往 前 上 , 要 做 xx , 而不是 xx

                                   // 集中 力量
       int i = 0;

       //int len_s = s.length();

       //for(i = 0 ; i < len_s ; i++)
       for(i = 0 ; s[i] != '\0' ; i++)
      {
       
           if(stack_Symbol.empty())
          {
               stack_Symbol.push(s[i]);
          }
           else
          {
               char Cache_Char = stack_Symbol.top();
               char Cache_Borther = Getborther(Cache_Char);

               if(Cache_Borther == s[i])
              {
                   stack_Symbol.pop();
              }
               else
              {
                   stack_Symbol.push(s[i]);
              }


          }


      }

       if(stack_Symbol.empty())
      {
           return 1;

      }
       else
      {
           return 0;
      }



  }


   char Getborther(char left)
  {
       switch(left)
      {
           case '(' :
               return ')';
           break;

           case '{' :
               return '}';
           break;

           case '[' :
               return ']';
           break;


      };

       return -1 ;

  }
};