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,
- Leetcode Valid Parentheses problem solution in C++
- Leetcode Valid Parentheses problem solution in Java
- Leetcode Valid Parentheses problem solution in Python
- Leetcode Valid Parentheses problem solution in C#