zoukankan      html  css  js  c++  java
  • [LeetCode] 20. 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.

    解法:

      采用栈方法,遍历字符串,对于每个字符:

    • 如果属于"{[("之一,压入栈中。
    • 如果属于")]}"之一,此时若栈为空(容易忽略),或者栈顶字符与其不匹配,返回false。

      遍历结束后,如果栈为空,返回true;否则返回false。

    public class Solution {
        public boolean isValid(String s) {
            Stack<Character> stack = new Stack<>();
            for (int i = 0; i < s.length(); i++) {
                if ("{[(".contains(s.substring(i, i + 1))) {
                    stack.push(s.charAt(i));
                } else if (")]}".contains(s.substring(i, i + 1))) {
                    if (stack.empty() || !match(stack.pop(), s.charAt(i))) {
                        return false;
                    }
                } else {
                    return false;
                }
            }
            return stack.empty();
        }
        
        public boolean match(char c1, char c2) {
            return (c1 == '(' && c2 == ')') || (c1 == '[' && c2 == ']') 
                || (c1 == '{' && c2 == '}');
        }
    }
  • 相关阅读:
    CodeForces 706C Hard problem
    CodeForces 706A Beru-taxi
    CodeForces 706B Interesting drink
    CodeForces 706E Working routine
    CodeForces 706D Vasiliy's Multiset
    CodeForces 703B Mishka and trip
    CodeForces 703C Chris and Road
    POJ 1835 宇航员
    HDU 4907 Task schedule
    HDU 4911 Inversion
  • 原文地址:https://www.cnblogs.com/strugglion/p/6413678.html
Copyright © 2011-2022 走看看