20. Valid Parentheses

来源:互联网 发布:大数据培训班多少钱 编辑:程序博客网 时间:2024/05/15 01:22

Valid Parenthese

有效的圆括号
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.

ps:题意很简单 使用stack 依次检测即可

public class Solution {    public boolean isValid(String s) {        Stack<Character> stack = new Stack<Character>();            // Iterate through string until empty            for(int i = 0; i<s.length(); i++) {                // Push any open parentheses onto stack                if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{')                    stack.push(s.charAt(i));                // Check stack for corresponding closing parentheses, false if not valid                else if(s.charAt(i) == ')' && !stack.empty() && stack.peek() == '(')  //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 true if no open parentheses left in stack            return stack.empty();  //此处注意不能直接返回true        }}
0 0