一、给定一个只有括号'(',')','{','}','[',']'字符串,判断字符串是否有效。

有效字符串需要满足:

1、左括号必须用相同的类型的右括号闭合。

2、左括号必须以正确的顺序闭合。

注意空字符串可被认为有效字符串。

实例1:

输入:"()"

输出:true

实例2:

输入:

"()[]{}"

输出:true

二、 代码实现:

import java.util.Stack;

public class Solution {
    public boolean isValid(String s) {
        if (s.length() == 0) {
            return true;
        }
        Stack<Character> stack = new Stack<>();
        for (char ch : s.toCharArray()) {
            if (ch == '(' || ch == '{' || ch == '[') {
                stack.push(ch);
            } else {
                if (stack.isEmpty()) {
                    return false;
                } else {
                    char temp = stack.pop();
                    if (ch == ')') {
                        if (temp != '(') {
                            return false;
                        }
                    }else if (ch == '}') {
                        if (temp != '{') {
                            return false;
                        }
                    } else if (ch == ']') {
                        if (temp != '[') {
                            return false;
                        }
                    }
                }
            }
        }
        return stack.isEmpty() ? true : false;
    }
}

Q.E.D.


樱花庄的一只二刺猿