利用栈后进先出特性进行括号匹配
import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
Stack<Character> stack = new Stack<>();
for(int i=0;i<s.length();i++){
//左边括号入栈
if(s.charAt(i)=='('||s.charAt(i)=='['||s.charAt(i)=='{'){
stack.push(s.charAt(i));
}else{
//判断栈是否为空,防止越界
if(stack.isEmpty()){
return false;
}
if(s.charAt(i)==')'){
if(stack.peek() == '('){
stack.pop();
}else{
return false;
}
}else if(s.charAt(i)==']'){
if(stack.peek() == '['){
stack.pop();
}else{
return false;
}
}else{
if(stack.peek() == '{'){
stack.pop();
}else{
return false;
}
}
}
}
//判断是否完全匹配
if(!stack.isEmpty()){
return false;
}
return true;
}
}