import java.util.*;
public class Solution {
/**
* 用压栈弹栈的方式来实现
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
Stack<Character> stack = new Stack<Character>();
for(char c: s.toCharArray()){
//如果碰到左括号,就把相应的右括号入栈
if(c == '(')
stack.push(')');
else if(c == '[')
stack.push(']');
else if(c == '{')
stack.push('}');
//如果碰到右括号,判断是否与栈顶元素匹配
//若栈为空或者c与栈顶不匹配,则该序列不合法
else if(stack.isEmpty() || c != stack.pop())
return false;
}
//出循环后栈必定为空,则可判断该序列合法
return stack.isEmpty();
}
}