Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- //user defined is_balanced function
- int is_balanced(char input[])
- {
- char stack[100], check;
- int top, i, length;
- top = 0;
- length = strlen(input);
- for(i=0; i<length; i++){
- if(input[i] == '{'){
- stack[top] = '{';
- top++;
- }
- else if(input[i] == '('){
- stack[top] = '(';
- top++;
- }
- else if(input[i] == '['){
- stack[top] = '[';
- top++;
- }
- // Now checking the position is correct or not
- else if(input[i] == ']'){
- if(top==0){
- return 0;
- }
- top--;
- check = stack[top];
- if(check != '['){
- return 0;
- }
- }
- else if(input[i] == ')'){
- if(top==0){
- return 0;
- }
- top--;
- check = stack[top];
- if(check != '('){
- return 0;
- }
- }
- else if(input[i] == '}'){
- if(top==0){
- return 0;
- }
- top--;
- check = stack[top];
- if(check != '{'){
- return 0;
- }
- }
- }
- if(top == 0) return 1;
- else return 0;
- }
- int main()
- {
- char input[100];
- scanf(" %[^\n]", input);
- if(is_balanced(input)){
- printf("%s is balanced\n", input);
- }
- else{
- printf("%s is not balanced\n", input);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment