public boolean isValid(String s) { if(s.equals("")||s == null) { return true; } if(s.length()%2!=0) // 避免类似[])的情况 { return false; } char[] Char = s.toCharArray(); //建立字符串数组 Stack<Character> stack = new Stack<>(); //new一个栈 Boolean flag = false; for(int i=0;i<Char.length;i++) //遍历字符数组 { if(Char[i] == '('||Char[i] == '['||Char[i] == '{') //左括号入栈 { stack.push(Char[i]); } else { if(!stack.empty()) { char Charpop = stack.pop(); //遇到右括号出栈 if((Char[i]==')'&&Charpop == '(')||(Char[i]==']'&&Charpop == '[')||(Char[i]=='}'&&Charpop == '{')) { flag = true; } else { return false; } } } } if (!stack.isEmpty()) { return false; } return flag; }
leetcode20 java 栈的应用(push and pop)
最新推荐文章于 2022-03-22 11:57:15 发布