How to check if a string contains only valid parentheses (open close same type (), {}, []) in JavaScript

3 Answers

0 votes
class Program {
    string_contains_valid_parentheses(s) {
        const arr = [];
        for (const ch of s) {
            if (ch === '(') {
                arr.push(')');
            }
            else if (ch === '{') {
                arr.push('}');
            }
            else if (ch === '[') {
                arr.push(']');
            }
            else if (arr.length === 0 || this.pop(arr) !== ch) {
                return false;
            }
        }
        return arr.length === 0;
    }
    pop(arr) {
        const ch = arr.pop();
        return ch;
    }
}

const p = new Program();

console.log(p.string_contains_valid_parentheses("(){}[]()(){}"));



/*
run:

true

*/


 



answered Mar 9, 2024 by avibootz
edited Mar 10, 2024 by avibootz
0 votes
function string_contains_valid_parentheses(s) {
    const arr = [];
    
    for (const ch of s) {
        if (ch === '(') {
            arr.push(')');
        }
        else if (ch === '{') {
            arr.push('}');
        }
        else if (ch === '[') {
            arr.push(']');
        }
        else if (arr.length === 0 || arr.pop() !== ch) {
            return false;
        }
    }
    return arr.length === 0;
}

console.log(string_contains_valid_parentheses("(){}[]")); 
console.log(string_contains_valid_parentheses("([{}])")); 
console.log(string_contains_valid_parentheses("(){}[]()(){}"));
console.log(string_contains_valid_parentheses("(]"));     
console.log(string_contains_valid_parentheses("({[)]}")); 



/*
run:

true
true
true
false
false

*/

 



answered Apr 25, 2025 by avibootz
0 votes
function isValidParentheses(str) {
    const stack = [];
    const parenthesesMap = {
        '(': ')',
        '{': '}',
        '[': ']'
    };

    for (let char of str) {
        if (parenthesesMap[char]) {
            stack.push(char);
        } else {
            const last = stack.pop();
            if (parenthesesMap[last] !== char) {
                return false;
            }
        }
    }

    return stack.length === 0;
}

console.log(isValidParentheses("(){}[]")); 
console.log(isValidParentheses("([{}])")); 
console.log(isValidParentheses("(){}[]()(){}"));
console.log(isValidParentheses("(]"));     
console.log(isValidParentheses("({[)]}")); 



/*
run:

true
true
true
false
false

*/

 



answered Apr 25, 2025 by avibootz
...