loading...

Leetcode - Valid Parentheses (with JavaScript)

urfan profile image Urfan Guliyev Updated on ・1 min read

Today I am going to show how to solve the Leetcode Valid Parentheses algorithm problem.

Here is the problem:

Alt Text

Solution:

var isValid = function(s){

    const stack = []

    for (i=0; i < s.length; i++){

        let curChar = s[i];

        switch(curChar) {
            case '(': stack.push(')');
                break;
            case '[': stack.push(']');
                break;
            case '{': stack.push('}')
                break;
            default:
                topElement = stack.pop()
                if (curChar !== topElement) return false;       
        }
    }
    return stack.length === 0;
}

As I iterate through the string character by character, I check to see if any of its characters is an open or closing parenthesis.

If a character is an opening parentheses, I will push it onto the stack.

Opening parenthesis: {, [, (

If a character is a closing parentheses, I’ll pop the element on top of the stack and check if it matches the character in the current index. If the characters do not match, then the expression is invalid.

Closing parenthesis: }, ], )

Essentially, if there are still elements in the stack, then the expression is invalid.

Posted on by:

urfan profile

Urfan Guliyev

@urfan

Love coding, eating and travelling

Discussion

markdown guide