本文主要是介绍2 月 9 日算法练习- 数据结构 - 除夕快乐♪٩(´ω`)و♪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
翻转括号序列
暴力过20%数据
思路:括号合法序列问题可以利用前缀和,将"(“看成 1,”)"看成 0,规律是到某个位置为止的前缀和>0并且到最后前缀和=0。
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
int n,m;
string s;
int a[N];int main( ){cin>>n>>m>>s;for(int i=0;i<s.size();i++)if(s[i]=='(')a[i+1]=1;else a[i+1]=-1;while(m--){int op,L,R;cin>>op;if(op==1){cin>>L>>R;for(int i=L;i<=R;i++){a[i] = -a[i];}}else if(op==2){cin>>L;int sum =0,ans = 0;for(int i=L;i<=n;i++){sum += a[i];if(sum<0)break;if(!sum) ans = max(ans,i);}cout<<ans<<'\n';}}return 0;
}
这篇关于2 月 9 日算法练习- 数据结构 - 除夕快乐♪٩(´ω`)و♪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!