`

Valid Parentheses

阅读更多
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.

Subscribe to see which companies asked this question

这道题目比较简单,用堆栈来处理,当遇到‘(’, ‘{’, ‘[’ 时就push到堆栈中,当遇到‘)’, ‘}’, ‘]’时,首先判断堆栈是否为空,如果为空说明之前字符中没有与right braces匹配的,返回false;如果堆栈不为空,判断是否匹配,如果匹配就继续往下匹配,如果不匹配直接返回false;最后要检查堆栈是否为空。代码如下:
public class Solution {
    public boolean isValid(String s) {
        if(s == null || s.length() == 0) return true;
        Stack<Character> stack = new Stack<Character>();
        for(int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if(c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else {
                if(stack.isEmpty()) return false;
                char tem = stack.pop();
                if(c == ')' && tem == '(') continue;
                if(c == '}' && tem == '{') continue;
                if(c == ']' && tem == '[') continue;
                return false; 
            }
        }
        return stack.isEmpty() == true;
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics