hdoj 5479 Scaena Felix 【Stack】
2016-04-08 16:58
369 查看
题目链接:hdoj 5479 Scaena Felix
Scaena Felix
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 763 Accepted Submission(s): 325
Problem Description
Given a parentheses sequence consist of ‘(’ and ‘)’, a modify can filp a parentheses, changing ‘(’ to ‘)’ or ‘)’ to ‘(‘.
If we want every not empty substring of this parentheses sequence not to be “paren-matching”, how many times at least to modify this parentheses sequence?
For example, “()”,”(())”,”()()” are “paren-matching” strings, but “((“, “)(“, “((()” are not.
Input
The first line of the input is a integer T, meaning that there are T test cases.
Every test cases contains a parentheses sequence S only consists of ‘(’ and ‘)’.
1≤|S|≤1,000.
Output
For every test case output the least number of modification.
Sample Input
3
()
((((
(())
Sample Output
1
0
2
题意:就是求匹配括号数目
AC代码:
Scaena Felix
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 763 Accepted Submission(s): 325
Problem Description
Given a parentheses sequence consist of ‘(’ and ‘)’, a modify can filp a parentheses, changing ‘(’ to ‘)’ or ‘)’ to ‘(‘.
If we want every not empty substring of this parentheses sequence not to be “paren-matching”, how many times at least to modify this parentheses sequence?
For example, “()”,”(())”,”()()” are “paren-matching” strings, but “((“, “)(“, “((()” are not.
Input
The first line of the input is a integer T, meaning that there are T test cases.
Every test cases contains a parentheses sequence S only consists of ‘(’ and ‘)’.
1≤|S|≤1,000.
Output
For every test case output the least number of modification.
Sample Input
3
()
((((
(())
Sample Output
1
0
2
题意:就是求匹配括号数目
AC代码:
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <queue> #include <cmath> #include <stack> #define fi first #define se second #define ll o<<1 #define rr o<<1|1 #define CLR(a, b) memset(a, (b), sizeof(a)) using namespace std; typedef long long LL; typedef pair<int, int> pii; const int MOD = 1e9 + 7; const int MAXN = 2*1e5 + 10; void add(LL &x, LL y) { x += y; x %= MOD; } char str[1010]; int main() { int t; scanf("%d", &t); while(t--) { scanf("%s", str); int len = strlen(str); int ans = 0; stack<int> S; for(int i = 0; i < len; i++) { if(str[i] == '(') { S.push(1); } else { if(!S.empty()) { ans++; S.pop(); } } } printf("%d\n", ans); } return 0; }
相关文章推荐
- 【剑指offer系列】 栈的压入和弹出序列___22
- jquery.validate ajax提交
- 转义特殊符号在Html中的表示方法( 含义)
- 一个前端的自我修养
- 【剑指offer系列】 包含min函数的栈___21
- angular国际化angular-translate中语言包的两种形式
- JavaScript常用的经典小技巧
- js中setTimeOut()和setInterval()的使用--程序执行时间控制
- css3 渐变实例
- jQuery全屏背景图片导航
- js效果 整理
- 用CSS和jQuery制作简单的下拉框
- packstack --allinone无法成功启动的问题
- 常用的前端调试工具
- nodemailer实现node发送邮件
- javascript Prototype constructor的理解(转)
- 礼拜五log~jBox
- What is the difference between 0 dB and 0 dBFS
- inode简单理解
- 名词解释——Ext JS4