啥都不咋会 2022-05-07 03:38 采纳率: 20%
浏览 17

leetcode有效的括号,报错怎么解决

leetcode报错:执行出错信息:

img

class Solution {
public:
    bool isValid(string s) 
    {
     stack<char>S;
         int n = s.size();
        if (n % 2 == 1) {
            return false;
        }

     for(int i=0;i<s.size();++i)
     {
         if(s[i]=='('||s[i]=='['||s[i]=='{')
         {
             S.push(s[i]);
         }
         else if(s[i]==')'&& S.top()=='(')
         {
            S.pop();
         }
         else if(s[i]==']'&& S.top()=='[')
         {
             S.pop();
         }
         else if(s[i]=='}'&& S.top()=='{')
         {
            S.pop();
         }
     }
     if(S.empty())
     {
         return true;
     }
     return false;
    }
};

```

```这种报错是什么意思啊,怎么解决

展开全部

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-05-07 09:39
    关注

    仅供参考:

    #include<stdio.h>
    #include<malloc.h>
    #include<string.h>
    #define STACK_INIT_SIZE 10
    #define STACK_GROW_SIZE 5
    #define ELEMTYPE char
    #define OK 1
    #define ERROR 0
    typedef struct { /*建立一个栈的首结点*/
        ELEMTYPE * base;
        ELEMTYPE * top;
        int stacksize;
    } SpStack;
    int InitStack(SpStack *s) { /*建立空的栈并返回首地址*/
        s->base=((ELEMTYPE*)malloc(STACK_INIT_SIZE*sizeof(ELEMTYPE)));
        if (!s->base) return ERROR;
        s->top=s->base;
        s->stacksize=STACK_INIT_SIZE;
        return OK;
    }
    int StackEmpty(SpStack *s) { /*判断栈是否为空*/
        if (s->top==s->base) return OK;
        else                 return ERROR;
    }
    int Push(SpStack *s,ELEMTYPE e) { /*往栈顶插入元素即进栈*/
        if (s->top-s->base>=s->stacksize) { /*判断是否栈满*/
            s->base=((ELEMTYPE*)realloc(s->base,(s->stacksize+STACK_GROW_SIZE)*sizeof(ELEMTYPE)));
            if (!s->base) return ERROR;
            s->stacksize+=STACK_GROW_SIZE;
            s->top=s->base+s->stacksize;
        }
        *s->top++=e;
        return OK;
    }
    int Pop(SpStack *s,ELEMTYPE *e) { /*让栈顶元素依次输出即出栈*/
        if (StackEmpty(s)) return ERROR;
        *e=*(--s->top);
        return OK;
    }
    int Comp(ELEMTYPE a,ELEMTYPE b) {
        if ((a=='('&&b!=')')
          ||(a=='['&&b!=']')
          ||(a=='{'&&b!='}')) {
            return ERROR;
        } else return OK;
    }
    int Count(SpStack *s) {
        ELEMTYPE e[STACK_INIT_SIZE*2];
        ELEMTYPE e1;
        int i;
    
        InitStack(s);
        fgets(e,STACK_INIT_SIZE*2,stdin);
        if ('\n'==e[strlen(e)-1]) e[strlen(e)-1]=0;
        printf("%s\n",e);
        for (i=0;e[i]!='\0';i++) {
            switch (e[i]) {
            case '(':
            case '[':
            case '{':
                Push(s,e[i]);
                break;
            case ')':
            case ']':
            case '}':
                if (StackEmpty(s)) {
                    printf("%*s↖右括号多余\n",i+1,"");
                    return(ERROR);
                } else Pop(s,&e1);
                if (!Comp(e1,e[i])) {
                    printf("%*s↖左右匹配出错\n",i+1,"");
                    return(ERROR);
                }
            }
        }
        if (!StackEmpty(s)) {
            printf("%*s↖左括号多余\n",i,"");
            return(ERROR);
        } else {
            printf("匹配正确\n");
            return(OK);
        }
    }
    void main() {
        SpStack s;
        Count(&s);
        free(s.base);
    }
    
    
    

    展开全部

    评论
    编辑
    预览

    报告相同问题?

    问题事件

    • 创建了问题 5月7日

    悬赏问题

    • ¥15 nginx使用nfs进行服务器的数据共享
    • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
    • ¥15 51嵌入式入门按键小项目
    • ¥30 海外项目,如何降低Google Map接口费用?
    • ¥15 fluentmeshing
    • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
    • ¥15 盘古气象大模型调用(python)
    • ¥15 传人记程序做的plc 485从机程序该如何写
    • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
    • ¥50 libwebsockets 如何添加其他socket事件回调
    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部