Problem: Check the balance of parenthesis sequence, the string contains (),{} and [].
#include <stdio.h>
#include <string.h>
int main() {
//code
char s[105];
char arr[105];
int balance;
int t,idx,i;
scanf("%d",&t);
while(t--)
{
scanf("%s",s);
idx=0;
balance=1;
for(i=0;i<strlen(s);i++)
{
if(s[i]=='(' || s[i]=='{' || s[i]=='[')
arr[idx++]=s[i];
else if(s[i]==')')
{
if(arr[idx-1]=='(')
{
idx--;
}
else
balance=0;
}
else if(s[i]=='}')
{
if(arr[idx-1]=='{')
{
idx--;
}
else
balance=0;
}
else if(s[i]==']')
{
if(arr[idx-1]=='[')
{
idx--;
}
else
balance=0;
}
if(balance==0)
break;
}
if(balance==0)
printf("not balanced\n");
else
printf("balanced\n");
}
return 0;
}