zuimman 2021-04-22 22:22 采纳率: 0%
浏览 7

对称符号问题,用数组和top指针模拟栈为什么会出错,后来用stack<char>来做能ac了

class Solution {
public:
    bool isValid(string s) {
     string st;
     int top=-1;
     int i=0;
     int n=s.length();
     while(i<n&&top>=-1){
         if(top==-1){
             if(s[i]==')'||s[i]==']'||s[i]=='}')
             return false;
             }
         if(s[i]=='('||s[i]=='['||s[i]=='{'){
             st[++top]=s[i];
        
             
         }
        else if(s[i]==')'){
             if(st[top]=='(')
                top--;
             else
                 return false ;
         }
         else if(s[i]==']'){
             if(st[top]=='[')
                top--;
             else
                 return false ;
         }
        else  if(s[i]=='}'){
             if(st[top]=='{')
                top--;
             else
                 return false ;
         }
         
         i++;
     }
     if(top>=0)
        return false;
    
     return true;
    }
};
  • 写回答

1条回答 默认 最新

  • 久绊A 全栈领域新星创作者 2023-02-23 18:02
    关注

    可能出现问题的原因有很多,不过使用数组和 top 指针模拟栈时

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料