# 020.ValidParentheses





































// https://leetcode-cn.com/problems/valid-parentheses/

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function (s) {
    var str = s.trim().replace(/\s+/g, '');
    if (!str) {
        return true;
    }
    if (str.length % 2 === 1) {
        return false;
    }
    var result = true;
    var stack = [];
    var leftParts = ['[', '{', '('];
    var rightParts = [']', '}', ')'];
    var arr = str.split('');
    for (var i = 0; i < arr.length; i++) {
        var item = arr[i];
        if (leftParts.includes(item)) {
            stack.push(item);
        } else {
            var index = rightParts.indexOf(item);
            if (stack.length && stack[stack.length - 1] === leftParts[index]) {
                stack.pop();
            } else {
                result = false;
                break;
            }
        }
    }
    return result && !stack.length;
};