1. 程式人生 > >leetcode-Valid Parentheses

leetcode-Valid Parentheses

Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Note that an empty string is also considered valid.

Example 1:

Input: "()"
Output: true

Example 2:

Input: "()[]{}"
Output: true

Example 3:

Input: "(]"
Output: false

Example 4:

Input: "([)]"
Output: false

Example 5:

Input: "{[]}"
Output: true

程式碼參考實現如下:

package com.xicheng.demo20180522;

import java.util.Stack;

public class ValidParentheses {
    public static void main(String[] args) {

    }

    private static boolean validParentheses(String str){
        boolean flag = false;
        Stack<Character> stack = new Stack<Character>();
        for (char c : str.toCharArray()) {
            if (c == '(')
                stack.push(')');
            else if (c == '{')
                stack.push('}');
            else if (c == '[')
                stack.push(']');
            else if (stack.isEmpty() || stack.pop() != c){
                flag = false;
            }
            flag = true;
        }
        return flag;
    }
}