解题报告 这是一个基本的栈的操作题目,是括号匹配问题的变形。 #include<iostream> #include<cstdio> using namespace std; int main(){ char str[1001]; while(scanf("%s",str)!=-1){ int len=strlen(str); char stack[1001];//用栈来模拟 int top=-1,cnt=0;//初始状态下栈为空,需打开箱子最少0个 for(int i=0;i<len;i++){ if(str[i]=='('){//没遇到左括号,进栈,需打开最少箱子数目+1 cnt++;stack[++top]=str[i]; } else if(str[i]==')'){ cnt--;top--;//遇到右括号则退出栈顶元素 } else break;//遇到礼物,计数完成 } printf("%d/n",cnt); } return 0; }