题目链接 点击打开链接
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
总结:
一定要弄清楚所有输入情况。