石山代码,求调
查看原帖
石山代码,求调
1074812
Jared0503楼主2024/7/16 15:04
#include<bits/stdc++.h>
using namespace std;
int ans;
int main(){
	string s;
	cin>>s;
	int n=s.size();
	for(int i=1;i<n;i++)
	{
		while(s[i-1]=='('&&s[i]==')') //删匹配的括号 
		{
			for(int j=i+1;j<n;j++)
			{
				s[j-2]=s[j]; //前移 
			}
			n-=2,i-=2;
		}
	}
//	cout<<s.substr(0,n); 
	for(int i=0;i<n;i++)
	{
		if(i%2) if(s[i]=='(') s[i]=')',ans++;
		else if(s[i]==')') s[i]='(',ans++;
		while(s[i-1]=='('&&s[i]==')') //继续消消乐 
		{
			for(int j=i+1;j<n;j++)
			{
				s[j-2]=s[j]; //前移 
			}
			n-=2,i-=2;
		}
	}
	cout<<ans+1; 
	return 0;
}

思路是贪心,详细可以看看

2024/7/16 15:04
加载中...