LeetCode-020有效的括号

public boolean isValid(String s) {
    char[] c = s.toCharArray();//先转数组
    String res = "";
    for (char value : c) {//遍历
        if (value == '(' || value == '[' || value == '{') {//左括号加进来
            res = res + value;
        } else {
            if(res.isEmpty()){//res为空 但value是有括号 必然不符合
                return false;
            }
            //三种情况符合value有括号遇到res最后一个是左括号
            if ((value == '}' && res.charAt(res.length() - 1) == '{') || (value == ']' && res.charAt(res.length() - 1) == '[') || (value == ')' && res.charAt(res.length() - 1) == '(')) {
                res = res.substring(0, res.length() - 1);//去掉res的左括号
            } else {//只要不满足以上三种情况 必然不符合
                return false;
            }
        }
    }

    return res.isEmpty();//最后res为空满足 反之
}

LeetCode-020有效的括号_第1张图片

你可能感兴趣的:(LeetCode-020有效的括号)