欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}
相关标签: 进阶课程

推荐阅读