Leetcode Valid Parentheses problem solution in C programming

In the Leetcode Valid Parentheses problem solution in C programming Given a string s containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘ and ‘]’, determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Every close bracket has a corresponding open bracket of the same type.

Leetcode Valid Parentheses problem solution in C programming

#define MAX_STRING_SIZE 0x1000

bool isValid(char * s){

    char currentOpens[MAX_STRING_SIZE] = { 0 };
    int curOpenIndex = 0;
    int curIndex = 0;
    bool isValid = true;
    while(s[curIndex] != '\0' && isValid == true)
    {
        char c = s[curIndex];
        if(c == '(' || c == '{' || c == '[')
        {
            currentOpens[curOpenIndex] = c;
            curOpenIndex++;
        }
        else
        {
            if(curOpenIndex == 0)
            {
                isValid = false;
            }
            else if(c == ')' && currentOpens[curOpenIndex - 1] == '(')
            {
                curOpenIndex--;
                currentOpens[curOpenIndex] = '\0';
            }
         else if(c == '}' && currentOpens[curOpenIndex - 1] == '{')
            {
                curOpenIndex--;
                currentOpens[curOpenIndex] = '\0';
            }
            else if(c == ']' && currentOpens[curOpenIndex - 1] == '[')
            {
                curOpenIndex--;
                currentOpens[curOpenIndex] = '\0';
            }
            else
            {
                isValid = false;
            }
        }
        curIndex++;
    }
    if(isValid == true && curOpenIndex == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Also read,

By Neha Singhal

Hi, my name is Neha singhal a software engineer and coder by profession. I like to solve coding problems that give me the power to write posts for this site.

Leave a Reply

Your email address will not be published. Required fields are marked *