rt,今天 T3 打了一个特别假的算法,好像还被自己 hack 了,结果最后 A 了,所以这个算法到底假不假
题面如下:
给你一个只含小括号的括号字符串,求至少修改多少个括号才能使括号字符串合法?例如,())( 需要修改后两个字符才能合法
我的代码如下:
#include<cstdio>
#include<cstring>
using namespace std;
#define N 100005
char s[N];
int lens;
int top;
signed main()
{
scanf("%s",s+1);
lens=strlen(s+1);
int ans=0;
for(int i=1;i<=lens;++i)
if(s[i]=='(')
++top;
else
{
if(top)
--top;
else
++top,
++ans;
}
printf("%d",ans+(top>>1));
return 0;
}