栈 Codeforces612C Replace To Make Regular Bracket Sequence
来源:互联网 发布:安卓手机数据恢复大师 编辑:程序博客网 时间:2024/06/03 17:18
传送门:点击打开链接
题意:有4种括号配对,现在能把一种括号改变成另一种括号,但是不允许改变括号的开口方向。问最少的操作次数能把括号全部配对
思路:运用栈去操作,如果是左括号,则压入栈,如果是右括号,看是否和栈顶配对,如果不配对就ans++,无论是否配对成功都弹出栈顶。
如果途中栈空了也取栈顶,或者最后栈不为空,这些都是非法的,特判一下
#include<map>#include<set>#include<cmath>#include<ctime>#include<stack>#include<queue>#include<cstdio>#include<cctype>#include<string>#include<vector>#include<cstring>#include<iostream>#include<algorithm>#include<functional>#define fuck(x) cout<<"["<<x<<"]"#define FIN freopen("input.txt","r",stdin)#define FOUT freopen("output.txt","w+",stdout)using namespace std;typedef long long LL;const int MX = 1e6 + 5;int A[MX], rear;char s[MX];char f(char x) { if(x == '<') return '>'; if(x == '{') return '}'; if(x == '[') return ']'; if(x == '(') return ')'; return 0;}void solve() { int n = strlen(s), ans = 0; rear = 0; for(int i = 0; i < n; i++) { int t = f(s[i]); if(t) A[++rear] = s[i]; else { if(!rear) { printf("Impossible\n"); return; } if(f(A[rear--]) != s[i]) ans++; } } if(!rear) printf("%d\n", ans); else printf("Impossible\n");}int main() { //FIN; while(~scanf("%s", s)) { solve(); } return 0;}
0 0
- 栈 Codeforces612C Replace To Make Regular Bracket Sequence
- Replace To Make Regular Bracket Sequence 【栈】
- C. Replace To Make Regular Bracket Sequence
- codreforces C. Replace To Make Regular Bracket Sequence(栈)
- Codeforces 612C Replace To Make Regular Bracket Sequence【栈】
- Codeforces 612C Replace To Make Regular Bracket Sequence 【stack】
- 【CodeForces】[612C]Replace To Make Regular Bracket Sequence
- codeforces_612C.Replace To Make Regular Bracket Sequence(stack)
- CodeForces 612C Replace To Make Regular Bracket Sequence
- Codeforces 612C Replace To Make Regular Bracket Sequence
- Replace To Make Regular Bracket Sequence(括号配对问题)
- Codeforces 612C Replace To Make Regular Bracket Sequence 【stack】
- Codeforces-612C-Replace To Make Regular Bracket Sequence 【stack】
- Codeforces 612C Replace To Make Regular Bracket Sequence 【stack】
- Codeforces 612C Replace To Make Regular Bracket Sequence 【stack】
- CodeForces 612C Replace To Make Regular Bracket Sequence
- Replace To Make Regular Bracket Sequence 括号配对
- Replace To Make Regular Bracket Sequence(括号匹配)
- JS去掉字符串中的空格
- 软件工程知识体系
- 【杭电】[2803]The MAX
- 如何显示YUV图像
- 寻找时间黑客编程初赛 ---- 简单中位数
- 栈 Codeforces612C Replace To Make Regular Bracket Sequence
- 蓝懿 ios 技术交流和心得分享 12.26
- a标签 下载属性
- MapReduce之Map端Join实现
- 数据库_mysql_基础
- 牛客网 | 集合栈
- Struts2中校验配置问题
- ORA-01031: insufficient privileges
- 社区检测入门