leetcode 20. Valid Parentheses

来源:互联网 发布:郭敬明 陈学冬 知乎 编辑:程序博客网 时间:2024/05/20 11:47

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.

括号匹配.

用栈比较合适,遇到左括号就入栈,遇到右括号,就判断栈顶是否与之匹配,若匹配则出栈,不匹配返回false.最后检查栈是否为空.

public class A20ValidParentheses {public boolean isValid(String s) {        Stack<Character> stack = new Stack<Character>();        for(int i = 0; i < s.length(); i++) {        char ch = s.charAt(i);        if(ch == '(' || ch == '[' || ch == '{') {        stack.push(ch);        } else {        if(stack.isEmpty()) {        return false;        }        char top = stack.peek();        if(parenthesesMatching(top, ch)) {        stack.pop();        } else {        return false;        }        }        }        if(stack.isEmpty())        return true;        else        return false;    }public boolean parenthesesMatching(char lch, char rch) {if(lch == '(' && rch == ')')return true;if(lch == '[' && rch == ']')return true;if(lch == '{' && rch == '}')return true;return false;}}


0 0
原创粉丝点击