Hi
This is regarding problem in parenthesis balancing problem. When i ran this code i am getting pass result But when i press submit i am getting wrong result
#include<stdio.h>
#define MAXSIZE 10
struct stack
{
int stk[MAXSIZE];
int top;
};
typedef struct stack STACK;
STACK stack;
void push(int item)
{
int num;
printf("\n pushing item = %d",item);
if (stack.top == (MAXSIZE - 1))
{
printf ("Stack is Full\n");
return;
}
else
{
stack.top = stack.top + 1;
stack.stk[stack.top] = item;
}
return;
}
int pop()
{
int num;
printf("\n popping the element");
if (stack.top == - 1) {
printf ("Stack is Empty\n");
return (stack.top);
}
else
{
num = stack.stk[stack.top];
printf ("poped element is = %d", stack.stk[stack.top]);
stack.top = stack.top - 1;
}
return num;}
bool isValid(char *s)
{
char ch;
int val=0;
int val1 = 0;
int sum=0;
int res = 0;
while(*s!='\0')
{
// Code Start from here
ch = *s;
switch(ch)
{
case '{' :
val = 5;
push(val);
break;
case '}':
val = -5;
val1 = pop();
res = val + val1;
if(res !=0 )
{
return false;
}
break;
case '(':
val = 6;
push(val);
break;
case ')':
val = -6;
val1 = pop();
res = val + val1;
if(res!=0 )
{
return false;
}
break;
case '[':
val = 7;
push(val);
break;
case ']':
val = -7;
val1 = pop();
res = val + val1;
if(res !=0)
{
return false;
}
break;
default:
printf("\n NULL Value");
break;
}
s++;
}
if(stack.top != 0)
{
printf("\n Returning False");
return false;
}
printf("\n Returning true");
return true;}
regards
Sobin