您的位置:首页 > 其它

输入一串字符串,其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),要求验证括号是否匹配,如果匹配则输出0、否则输出1.

2015-06-12 22:53 573 查看
#include <stdio.h>

int push(char *pstr, char *dstr );

int main()
{
char *str = "]d)]fa(sdf)df[dfds(dfd)] ()*()";

char data[50];

int flag = -5;

flag = push(str,data);

if(flag == -1)
printf("%d\n",0);
else
printf("%d\n",1);

}

int push(char *pstr, char *dstr )
{
int i = 0, j = -1;

if(pstr == NULL)
return -2;

while(pstr[i] !='\0')
{
if(pstr[i] == '(' || pstr[i] == '[')
{
j++;
dstr[j] = pstr[i];
}
else
{
if(pstr[i] == ')' )
{
if(j == -1)
{
return j+1;
}
else
{
if(dstr[j] == '(')
j--;
else
{
j++;
dstr[j] = pstr[i];
}
}
}
if(pstr[i] == ']')
{
if(j == -1)
{
return j+1;
}
else
if(dstr[j] == '[')
j--;
else
{
j++;
dstr[j] = pstr[i];
}
}
}
i++;
}

return j;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: