w3resource

C Exercises: Check if a given string is valid or not


10. Valid Parentheses String Check Variants

Write a C program to check if a given string is valid or not. The string contains the characters '(', ')', '{', '}', '[' and ']'. The string is valid if the open brackets must be closed with the same type of bracket and in the correct order.

C Code:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
static bool is_valid_Parentheses(char *s)
{
    int n = 0, cap = 100;
    char *tstack = malloc(cap);

    while (*s != '\0') {
        switch(*s) {
        case '(':
        case '[':
        case '{':
            if (n + 1 >= cap) {
                cap *= 2;
                tstack = realloc(tstack, cap);
            }
            tstack[n++] = *s;
            break;
        case ')':
            if (tstack[--n] != '(') return false;
            break;
        case ']':
            if (tstack[--n] != '[') return false;
            break;
        case '}':
            if (tstack[--n] != '{') return false;
            break;
        default:
            return false;
        }
        s++;
    }
    return n == 0;
}
int main(void)
  {
	//char **vbracket = "()[]{}";
	char **vbracket = "([)]";
	printf("%s\n", is_valid_Parentheses(vbracket) ? "true" : "false");
    return 0;
}

Sample Output:

false

Flowchart:

C Programming Flowchart: Check if a given string is valid or not

For more Practice: Solve these Related Problems:

  • Write a C program to check if a string of various types of brackets is valid using a stack data structure.
  • Write a C program to validate a parentheses string and output the position of the first unmatched bracket.
  • Write a C program to verify the validity of a string containing nested and sequential brackets, ignoring non-bracket characters.
  • Write a C program to check the validity of a mixed parentheses string using a recursive function.

Go to:


PREV : Distinct Quadruplets Sum Variants.
NEXT : Generate Well-Formed Parentheses Variants.

C Programming Code Editor:



Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.