HDOJ 5479 Scaena Felix
来源:互联网 发布:可牛软件下载 编辑:程序博客网 时间:2024/05/21 05:55
题目链接:HDOJ5479
题目大意:t组测试,每组测试一个由”(”和”)”组成的字符串S,问要使S没有子串括号能匹配的最小代价是多少。一个代价定义为一次将“(”变成“)”,或则相反。
数据范围:
1≤|S|≤1,000
要使S的子串都没有括号匹配“()”,只有可能将S变成3种情况。
1.全是左括号“((…..”
2.全是右括号“))…..”
3.左边右括号,右边左括号“…..))((…..”
参考代码:
#include <iostream>#include <string>using namespace std;int main(){ int t; cin >> t; while(t--) { string st; cin >> st; int len = st.length(); int l[len], r[len]; for(int i = 0; i < len; ++i)//l[i]表示将[0,i]都变成")"的代价 { if(i == 0) l[i] = st[i] == '('; else if(st[i] == '(') l[i] = l[i - 1] + 1; else l[i] = l[i - 1]; } for(int i = len - 1; i >= 0; --i)//r[i]表示将[i,len - 1]都变成"("的代价 { if(i == len - 1) r[i] = st[i] == ')'; else if(st[i] == ')') r[i] = r[i + 1] + 1; else r[i] = r[i + 1]; } int ans = 2e9; for(int i = 0; i < len; ++i)//在3中情况中取小值 ans = min(ans, l[i] + r[i] - 1) ; cout << ans << endl; } return 0;}
0 0
- HDOJ 5479 Scaena Felix
- HDOJ 5479 Scaena Felix (栈)
- hdoj 5479 Scaena Felix 【Stack】
- hdoj--5479--Scaena Felix(stack水题)
- HDU 5479 Scaena Felix
- HDU 5479 Scaena Felix
- HDU 5479 Scaena Felix
- HDU 5479 Scaena Felix
- Scaena Felix 5479 (栈)
- HDU 5479 Scaena Felix(DP)
- hdu 5479 Scaena Felix 枚举
- hdu 5479 Scaena Felix(水)
- HDU 5479 Scaena Felix【STL】
- Scaena Felix
- BestCoder Round #57 (div.2) HDU 5479 Scaena Felix
- BestCoder Round #57 (div.2) HDU 5479 Scaena Felix
- hdu 5479 Scaena Felix【栈应用】【括号匹配】
- HDU 5479 Scaena Felix(简单的数据结构题目)
- 配置ubuntu和目标板nfs共享
- HDU 1076 An Easy Task(水~)
- Oracle Flashback Technology【闪回技术】
- java中内部方法对外部类变量的引用
- 跟我一起用Git
- HDOJ 5479 Scaena Felix
- 欢迎使用CSDN-markdown编辑器
- P1094 矩形分割|tyvj
- 单向循环链表的实现C++封装
- leetcode | Remove Nth Node From End of List
- ***Binary Tree Maximum Path Sum
- 工科生在科研中一些必备技能总结
- Sublime text 常用插件及安装
- js文件引入顺序问题