题目描述
LYK有一个括号序列,但这个序列不一定合法。
一个合法的括号序列如下:
()是合法的括号序列。
若A是合法的括号序列,则(A)是合法的括号序列。
若A和B分别是合法的括号序列,则AB是合法的括号序列。
LYK想通过尽可能少的操作将这个不一定合法的括号序列变成合法的括号序列。一次修改操作是将某个字符变成另一个字符。
你能帮帮它吗?

输入格式(bracket.in)
一行一个字符串S。

输出格式(bracket.out)
一个数表示最少修改次数。

输入样例
()))

输出样例
1

样例解释
将第二个字符修改成(即可。

数据范围
对于30%的数据|S|<=10。
对于60%的数据|S|<=1000。
对于100%的数据|S|<=100000。且|S|是偶数。

分析:比较水的一道题,将所有符合要求的括号序列给删掉,剩下的大概长这样:)))))(((((,假设有cnt1个),cnt2个(,那么每个)转一下可以与)配对,如果是奇数个,那么肯定还要和(配对,所以答案是cnt1/2 + cnt1 % 2 + cnt2/2 + cnt2 % 2.

#include <stack>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; char s[];
int cnt1, cnt2, ans; int main()
{
scanf("%s", s + );
for (int i = ; i <= strlen(s + ); i++)
{
if (s[i] == '(')
cnt1++;
else
if (s[i] == ')' && cnt1)
cnt1--;
else
cnt2++;
}
ans = cnt1 / + (cnt1 % ) + cnt2 / + (cnt2 % );
printf("%d\n", ans); return ;
}

最新文章

  1. 【Hector slam】A Flexible and Scalable SLAM System with Full 3D Motion Estimation
  2. Google Java编程风格指南中文版
  3. Day5_作业
  4. android studio中the logging tag can be most 23 characters
  5. 使用BAPI_ACC_DOCUMENT_POST,创建会计凭证,用BADI扩展字段(转)
  6. extjs grid renderer用法【转载】
  7. Windows Embedded Compact 2013升级:VS2013也能编译
  8. iOS开发 AFNetworking 3.0使用遇到的问题
  9. A标签-一个按钮样式
  10. Struts2学习笔记整理(四)
  11. iview inoput type=textarea 禁止拉伸
  12. linux基础命令入门
  13. grid - 网格轨道对齐方式
  14. python3学习笔记二(注释、缩进)
  15. JoyOI1940 创世纪
  16. dsu on tree题表
  17. [C] 如何使用头文件 .h 编译 C 源码
  18. 【python】copy浅拷贝和deepcopy深拷贝
  19. Kafka设计解析(十四)Kafka producer介绍
  20. MicrosoftFixit50688 [Windows7事件ID10,WMI错误的解决方法

热门文章

  1. P2597 [ZJOI2012]灾难 拓扑排序
  2. android 中activity 属性说明(转载)
  3. Linux进程状态查询
  4. phonegap在eclipse上的安装
  5. 题解报告:hdu 1279 验证角谷猜想
  6. 编译安装php、nginx
  7. 为什么现在改用int.TryParse了
  8. MVC系列学习(十一)-客户端的验证
  9. unity3d 各键值对应代码
  10. C# 返回值为 list&lt;T&gt;