是银色之翼ya 2021-05-22 17:34 采纳率: 50%
浏览 29
已采纳

想问一下为什么这道括号匹配的题输入()[]{}不通过?

bool isValid(char * s){
    char a[10000];
    int top,i,j;
    char n,m;
    for(i=0;i<10000;i++) a[i]=0;//初始化
    top=-1;//栈空top=-1
    j=0;
    for(i=0;s[i]!='\0';i++){ 
        switch(s[i]){
            case '(': ;
            case '{': ;
            case '[': 
				a[j]=s[i];
                top++;
                j++;
                break;
            case '}': ;
            case ']': ;
            case ')': 
                if(top==-1)
                	return false;
				else {
					if(s[i]-a[top]==1||s[i]-a[top]==2){
						top--;
	            	}else return false;
                }
        }
    }
    if(top==-1){
    	return true;
	}else return false;
}

我直接用的栈并没有使用函数,我判定匹配的方法是ascii码,()差1,[]和{}差2

原题就是LeetCode20题

求大佬告诉哪错了

  • 写回答

3条回答 默认 最新

  • 关注

                        if(s[i]-a[top]==1||s[i]-a[top]==2){

                            top--;

                            j--; // top减一了,j也要减一

                        }else return false;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动