题目链接 点击打开链接
package test;
import java.util.Stack;
public class test
{
public static void main(String args[])
{
System.out.println(isValid("([)]"));
}
public static boolean isValid(String s){
Stack<Character> myStack=new Stack<>();
char[] sArr=s.toCharArray();
for(Character e:sArr)
{
if(e=='('||e=='['||e=='{')
{
myStack.push(e);
}
else
{
if(myStack.isEmpty())
{
return false;
}
Character top=myStack.peek();
switch (e) {
case ')':
if(top!='(')
{
return false;
}
break;
case ']':
if(top!='[')
{
return false;
}
break;
case '}':
if(top!='{')
{
return false;
}
break;
}//switch
myStack.pop();
}//if(e=='('||e=='['||e=='{')
}//for(Character e:sArr)
if(myStack.isEmpty())
{
return true;
}
else
{
return false;
}
}
}
所犯错误
Runtime Error Message: Line 14: java.util.EmptyStackException
Last executed input: "]"
Input: "["
Output: true
Expected: false
总结:
一定要弄清楚所有输入情况。
本文介绍了一种利用栈数据结构来验证括号序列有效性的方法,并通过一个Java示例程序进行了解释。同时,文章指出了在面对空栈时可能出现的运行时错误并给出了特定输入情况下的预期输出。
277

被折叠的 条评论
为什么被折叠?



