利用栈的先进后出进行匹配:
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
if(s.length()%2 != 0){
return false;
}
char[] chars = s.toCharArray();
Stack<character> sta = new Stack<>();
for(int i = 0; i < chars.length; i++){
if(sta.isEmpty()){
sta.push(chars[i]);
continue;
}
if(isValid(chars[i],sta.peek())){
sta.pop();
}else{
sta.push(chars[i]);
}
}
return sta.isEmpty();
}
boolean isValid(char a,char b){
switch(a){
case '(':
return b == ')';
case '{':
return b == '}';
case '[':
return b == ']';
case ')':
return b == '(';
case '}':
return b == '{';
case ']':
return b == '[';
}
return false;
}
}</character>