- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Print the balanced bracket expression using given brackets in C Program
Given four variables a, b, c, d with predefined values that will print the given bracket depending upon the variable used.
Where variable,
a for (( b for () c for )( d for ))
The task is to use all the given brackets and print the balanced bracket expression, if we cannot form a balanced bracket expression then print -1. In case of multiple answers we can print any of the multiple answers which can be formed using the given brackets.
Example
Input: a = 3, b = 2, c = 4, d = 3 Output : (((((()()()()())))))()()
To achieve this result we can, first check if the balanced bracket expression can be formed with the given number of brackets or not. If the expression can be made by given number of brackets then we will.
- Print the number of type 1 brackets.
- Print the number of type 3 brackets.
- Print the number of type 4 brackets.
- Print the number of type 2 brackets.
Below is the algorithm and implementation of the approach.
Algorithm
START Step 1 -> Declare Function void print(int a, int b, int c, int d) Declare int i IF ((a == d && a) || (a == 0 && c == 0 && d == 0)) Loop For i=1 and i<=a and i++ Print (( End Loop For i=1 and i<=c and i++ Print )( End Loop For i=1 and i<=d and i++ Print )) End Loop For i=1 and i<=b and i++ Print () End Else Print can’t be formed Step 2 -> main() Declare int a = 3, b = 2, c = 4, d = 3 Call print(a,b,c,d) STOP
Example
#include<stdio.h> void print(int a, int b, int c, int d){ int i; if ((a == d && a) || (a == 0 && c == 0 && d == 0)){ for (i = 1; i <= a; i++) printf("(("); for (i = 1; i <= c; i++) printf(")("); for (i = 1; i <= d; i++) printf("))"); for (i = 1; i <= b; i++) printf("()"); } else printf("can't be formed"); } int main(){ int a = 3, b = 2, c = 4, d = 3; print(a, b, c, d); return 0; }
Output
if we run above program then it will generate following output
(((((()()()()())))))()()
Advertisements