判断字符串是否合法
比如 “[]{}”,"[({{[]}})]",为合法
“[)]”,"{}{()]}"为不合法
考虑用栈,判断是否为左边,为左边就入栈,右边就出栈.
public static void main(String[] args) {
String s = "{([])}";
System.out.println(getResul(s));
}
static boolean getResul(String s){
Stack<Character> stack = new Stack<>();
for (int i = 0; i <s.length() ; i++) {
switch (s.charAt(i)){
case '{':
stack.push(s.charAt(i));
break;
case '[':
stack.push(s.charAt(i));
break;
case '(':
stack.push(s.charAt(i));
break;
case '}':
//判断栈是否为空,获取栈顶元素,如果不存在就弹出
if (!stack.empty() && stack.peek()=='{' ){
stack.pop();
break;
}else{
return false;
}
case ']':
if (!stack.empty() && stack.peek()=='[' ){
stack.pop();
break;
}else{
return false;
}
case ')':
if (!stack.empty() && stack.peek()=='(' ){
stack.pop();
break;
}else{
return false;
}
}
}
if (stack.empty()){
return true;
}else{
return false;
}
}