You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有效括号问题中输入"()"触发EmptyStackException的问题求助

有效括号问题中输入"()"触发EmptyStackException的问题求助

大伙好,我正在啃有效括号这个算法题,改代码改了好一会儿还是没搞定,先谢谢之前帮我解决语法问题的朋友们!

现在遇到的情况是,当输入s = "()"时,我的代码直接抛出了EmptyStackException,而不是预期返回true。具体错误栈信息如下:

java.util.EmptyStackException

at line 101, java.base/java.util.Stack.peek

at line 83, java.base/java.util.Stack.pop

at line 37, Solution.isValid

at line 54, DriverSolution.helper

at line 84, Driver.main

麻烦各位帮我看看问题出在哪,感激不尽!

我的代码如下:

import java.util.*;

class Solution {

Stack stack1 = new Stack();

public boolean isValid(String s) {

int stringSize= s.length();

boolean g = true;

for (int x=0; x <stringSize; x++)

{

switch (s.charAt(x)){

case '(':

stack1.push(x);

break;

case '{':

stack1.push(x);

break;

case '[':

stack1.push(x);

break;

case ')':{

if(stack1.empty()){

g=false;

return false;}

else if (stack1.pop()=="("){

break;}

else if (stack1.pop()=="{"){

g=false;

return false;

}

else if (stack1.pop()=="["){

g=false;

return false;

}

}

case '}':{

if(stack1.empty()){

g=false;

return false;}

else if (stack1.pop()=="{"){

break;}

else if (stack1.pop()=="("){

g=false;

return false;

}

else if (stack1.pop()=="["){

g=false;

return false;

}

}

case ']':{

if(stack1.empty()){

g=false;

return false;}

else if (stack1.pop()=="["){

break;}

else if (stack1.pop()=="("){

g=false;

return false;

}

else if (stack1.pop()=="{"){

g=false;

return false;

}

}

}

}

return g;

}

}

备注:内容来源于stack exchange,提问作者sgx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:08:15