import java.util.Stack;
/*
20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
思路:
左括号压入栈,
右括号时候查看栈顶
*/
public class p20 {
public static boolean isValid(String s) {
char []arr=s.toCharArray();
if(s.length()%2==1)return false;
System.out.println(00000000000000);
Stack<Character> stack=new Stack<Character>();
System.out.println(1111111111);
for(int i=0;i<arr.length;i++){
if(arr[i]=='('||arr[i]=='['||arr[i]=='{'){
stack.push(arr[i]);
System.out.println(stack.peek());
}
else{
if(!stack.isEmpty()){
if(arr[i]==')'){
System.out.println(stack.peek());
char ch=stack.pop();
System.out.println(ch);
if(ch!='(')return false;
}
else if(arr[i]==']'){
char ch=stack.pop();
if(ch!='[')return false;
}
else if(arr[i]=='}'){
char ch=stack.pop();
if(ch!='{')return false;
}
else return false;
}
else return false;
}
}
if(stack.isEmpty())return true;
return false;
}
public static void main(String[] args) {
System.out.println(isValid("("));
}