| 
 | 
 
 
发表于 2022-7-22 09:44:48
|
显示全部楼层
   本楼为最佳答案    
 
 
- bool isValid(char * s){
 
  
-     int n = strlen(s); //计算字符串长度
 
  
-      //定义一个栈并初始化
 
 -     char stack[n]; 
 
 -     int top = 0;
 
  
-     //把s中的数据判断是否可以入栈
 
 -     for(int i = 0;i<n;i++)
 
 -     {
 
 -         char ch = s[i]; //将数据存入ch数组
 
 -     if(ch == '(' || ch == '[' || ch=='{')
 
 -     {
 
 -         //满足括号左半边的入栈
 
 -         stack[top++] = ch;
 
 -     }
 
 -     else
 
 -     {
 
 -         char ch1 = 'u'; //初始化
 
 -         if(top > 0)
 
 -         {
 
 -             //
 
 -             ch1 = stack[top-1]; 
 
 -         }
 
 -         if( (top > 0) && 
 
 -         (ch1 == '(' && ch == ')') ||
 
 -          (ch1 == '[' && ch ==']') ||
 
 -           (ch1 =='{' && ch == '}') 
 
 -           )
 
 -         {
 
 -             //出栈
 
 -             top--;
 
 -         }
 
 -         else
 
 -         {
 
 -             return false;
 
 -         }
 
 -     }
 
 -     }
 
 -     //判空
 
 -     if(top == 0)
 
 -     {
 
 -         return true;//完成
 
 -     }
 
 -     else
 
 -     {
 
 -         return false;
 
 -     }
 
 - }
 
  复制代码 |   
 
 
 
 |