package Day2;
import java.util.Stack;
public class Stack_020 {
/**
*
* @param s
* @return
*/
public boolean isValid(String s) {
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(s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}')
stack.pop();
else if(s.charAt(i) == ')' && !stack.empty() && stack.peek() == '(')
stack.pop();
else if(s.charAt(i) == ')' && !stack.empty() && stack.peek() == '[')
stack.pop();
else if (s.charAt(i) == ')' && !stack.empty() && stack.peek() == '{')
stack.pop();
else
return false;
}
return stack.empty();
}
public static void main(String[] args) {
System.out.println(new Stack_020().isValid("((()))"));
}
}