hdu3351
程序员文章站
2022-03-22 19:07:03
...
#include<bits/stdc++.h>
using namespace std;
int change(string s){
int ans=0;//ans标记改变方向的右括号
int l=0;//l标记左括号的数量
for(int i=0;i<s.size();i++){
char c=s[i];
if(c=='{'){
l++;//如果是左括号,l++
}
else{
if(l>0) l--;//如果左括号数量>0,l--,{、}相互配对抵消
else{
//左括号数量<0,则需改变右括号的方向,使右括号变成左括号,同时左括号数量增加
ans++;
l++;
}
}
}
return ans+l/2;
}
int main()
{
string s;
int i=1;
while(cin>>s){
if(s[0]=='-') break;
printf("%d. %d\n",i,change(s));
i++;
}
return 0;
}
推荐阅读