括号匹配检测 (20 分)
编写程序,对输入的含有大,中,小括号的字符串进行检测,看括号是否是匹配的。
说明:
1)仅处理括号匹配性,应该忽略其它字符。
2)括号匹配指的是(
与)
相配,[
与]
相配,而{
总是与}
相配。
3)可假定字符串的长度不超过100
。
4)括号匹配时,返回出现的总对数(
共我多少对左右括号)
的,否则输出0
。
输入样例1:
{[(a+b)*(c-d)-e]}*[x+y]
输出样例1:
5
输入样例2:
[a+b)*(c-d];
输出样例2:
0
代码:
#include<stdio.h>
#include<string.h>
int main(void)
{
int i,j,len,sum0=0,sum1=0,sum2=0;
char str[101];
scanf("%s",str);
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]=='{'||str[i]=='}')
sum0++;
else if(str[i]=='['||str[i]==']')
sum1++;
else if(str[i]=='('||str[i]==')')
sum2++;
}
if(sum0%2==0&&sum1%2==0&&sum2%2==0)
printf("%d",(sum0+sum1+sum2)/2);
else
printf("0");
}