有幸参加过一个国内最牛的软件公司的笔试,当时要求用纯C写一段代码,能将字符串中所有的括号检查出来是否全部配对。
当时我做出的功能是实现 了,首先是效率不高,在内存不够用的情况下,可能会出问题,总之经过面试官的点拨,认识到自己的很多不足,回家后又重写了代码,希望高手再给指点一下。
/******************************************
功能:判断此字符串是否所有括号都配对
时间:2010-08-17
********************************************/
#include <iostream>
void main()
{
char *str = "abc(d)((ef)))((w)e(f)0";
printf("%s\n",str);
char *p = str;
int iLeft = 0;
int flag = 1;
while(*p != '\0')
{
if(*p == '(')
{
iLeft++;
}
else if(*p == ')')
{
if(iLeft > 0)
{
iLeft--;
}
else
{
flag = 0;
break;
}
}
p++;
}
if( iLeft != 0)
{
flag = 0;
}
if(flag == 0)
{
printf("不配对\n");
}
else
{
printf("配对\n");
}
system("pause\n");
}