1 条题解
-
0
Guest
-
0
思路
可以用栈,先尽可能配对。符合题意的序列是在原序列的左边加左括号,右边加右括号,最终看栈里有多少个左括号和右括号未配对即可。
code
#include<bits/stdc++.h> using namespace std; stack<char> s; string str; int n; int main(){ cin>>n>>str; for(int i=0;i<n;i++){ if(!s.empty()&&(str[i]==')'&&s.top()=='(')) s.pop(); else s.push(str[i]); } int l=0,r=0; while(s.size()){ if(s.top()=='(') r++; else l++; s.pop(); } while(l--) cout<<'('; cout<<str; while(r--) cout<<')'; }
信息
- ID
- 901
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者