有幸参加过一个国内最牛的软件公司的笔试,当时要求用纯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"); }