http://acm.hdu.edu.cn/showproblem.php?pid=1870
结果:
1)栈
#include<cstdio>
#include<stack>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
char str[1010];
int i,len;
while(scanf("%s",str)!=EOF)
{
stack<char>s1;
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]=='(')
s1.push(str[i]);
else if(str[i]==')')
s1.pop();
else
break;
}
cout<<s1.size()<<endl;
}
return 0;
}
2)不用栈
分析:统计 '(' 的个数
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char str[1005];
int i,ans,len;
while(scanf("%s",str)!=EOF)
{
len=strlen(str);
ans=1;
for(i=0;i<len-1;i++)
{
if(str[i]=='(')
{
if(str[i+1]=='(')
ans++;
else if(str[i+1]=='B')
break;
else i++;
}
}
printf("%d\n",ans);
}
return 0;
}