ACM练习 愚人节拆括号【vector的清空 栈的使用】
关于vector的清空
vectorname.clear();
vectorname.clear()函数并不会把所有元素清零,vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数。
通常capacity会比size大,如果往vector中push_back数据,这样就不用重新申请内存和拷贝元素到新内存区域了,便于节省时间。
所以vector.clear()的真正作用是:把size设置成0,capacity不变。
但是在本题中,使用vectorname.clear(),在每次循环开始的时候把vector设置为空容器,还是可以的。
C++ STL库中有专门的stack,在头文件中包含<stack>
即可,下面代码贴出了两种方法,一种是直接使用stack,另一种是使用vector模拟出stack的效果。
描述
愚人节到了,祝大家节日快乐~作为源代码的主要领导人,DarkZero同学想了个愚弄大家的好办法——送礼物。嘿嘿,不要想的太好,哪儿能给你们那么轻易空手套白狼,DarkZero为了愚人,准备了很多套娃,其中有一个套娃里面装了礼物,这个套娃里也可能还有套娃,为的就是让你稍微不注意就没看到礼物。套娃里面可以再放若干个套娃,也可以不放,完全看他心情。用[]表示一个套娃,G表示礼物,DarkZero想让你帮他算出愚人指数,即运气最好的人需要打开多少个套娃就能拿到礼物。
输入
第一行包含一个整数T,代表测试样例数。
接下来每行代表一个测试样例,每行中有一个字符串,包含’[’,’]'和’G’三种字符。每行长度不超过200。
输出
对每个测试样例输出一行,一行中包含一个数字,代表最少需要打开的套娃数。
样例输入
2
[[G]]
[G][]
样例输出
2
1
提示
这道题目可以使用简单的动态规划来求解,或者使用搜索加剪枝的方法。测试样例有很多,写的不好可能会超时。
我的测试用例
输入:[[[[][[[[]]][[][[]][][][][][[[[]]]]]]][G]
答案:1
代码
方法1:vector
#include<iostream>
#include<string>
#include<vector>
using namespace std;int main()
{int total;cin >> total;vector<char> stackStr;string str;int j;for (j = 0; j < total; j++){cin >> str;int i;stackStr.clear();for (i = 0; i < str.length(); i++){if (str[i] == 'G'){cout << stackStr.size() << endl;}else{if (stackStr.size() == 0)//栈为空{stackStr.push_back(str[i]);//入栈}else if (*(stackStr.end() - 1) == '['&&str[i] == ']')//匹配{stackStr.erase(stackStr.end() - 1);//出栈}else{stackStr.push_back(str[i]);//入栈}}}}system("pause");
}
方法2:stack
#include<iostream>
#include<string>
#include<stack>
using namespace std;int main()
{int total;cin >> total;stack<char> stackStr;string str;int j;for (j = 0; j < total; j++){cin >> str;int i;while (!stackStr.empty()){stackStr.pop();}for (i = 0; i < str.length(); i++){if (str[i] == 'G'){cout << stackStr.size() << endl;break;}else{if (stackStr.size() == 0)//栈为空{stackStr.push(str[i]);//入栈}else if (stackStr.top() == '['&&str[i] == ']')//匹配{stackStr.pop();//出栈}else{stackStr.push(str[i]);//入栈}}}}cout << endl;system("pause");
}
//[][][[][[]][]][[]][][[[[[[[]]]][][]][[][[]][[[[G[]][]][]]][]]]][[][]][][[][]][][]
//答案:7
ACM练习 愚人节拆括号【vector的清空 栈的使用】相关推荐
- c++实现简单的数据结构(1.链表合并 2.士兵队列训练问题 3.Rails 4.Josephus Problem 5.Tree Recovery 6.四则运算 7.愚人节的礼物 8.Web)
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮 ...
- HDU 1870 愚人节的礼物 栈的应用
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU1870 愚人节的礼物【堆栈+输入输出+水题】
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU1870 愚人节的礼物【堆栈+输入输出】
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 1870 愚人节的礼物
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 【HDU 1870 --- 愚人节的礼物】栈水题
[HDU 1870 --- 愚人节的礼物]栈水题 Description 四月一日快到了,Vayko想了个愚人的好办法--送礼物.嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆 ...
- HDU 1870解题报告(愚人节的礼物)
愚人节的礼物 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u Java class ...
- 牛客2021年愚人节比赛 【题解】
很有意思的一套题,难度不大,不过题目很有意思. 比赛链接:https://ac.nowcoder.com/acm/contest/12800 目录 A: 出愚人节欢乐赛 B: 你这题,狗屁不通 C: ...
- 1045: 愚人节的礼物
1045: 愚人节的礼物 时间限制: 1 Sec 内存限制: 128 MB 提交: 169 解决: 137 [提交][状态][讨论版] 题目描述 四月一日快到了,Vayko 想了个愚人的好办法-- ...
最新文章
- java 详解 搭建 框架_在Eclipse中搭建Struts框架过程详解
- ArrayList、LinkedList、 Vector、Map 用法比较
- leetcode1482. 制作 m 束花所需的最少天数(二分法)
- java下拉列表 动态_【示例】教你简单用Java写一个动态更新的下拉列表(无数据库)...
- 用pycharm写python老是提示错误_python pycharm错误集锦
- MySQL 异常有这一篇就够了!
- python graphviz中文乱码_graphviz画图与中文乱码等问题总结
- 图数据库 graph_通过SQL Server中的自连接了解Graph数据库相对于关系数据库的好处
- 个人网站Timonj(Personal website)
- Nebula Graph 在企查查的应用
- 2018.8.7 ACM 信息学奥赛之数学一本通 暑假训练总结(生死看淡,不服就干)
- 集合类 Java中的集合类解析和一些有深入的面试题
- nodejs无法下载puppeteer附带的chromium解决方案
- 2022年中国服务外包行业发展现状及未来发展趋势分析:执行额达1753.5亿美元,同比增长10.92%[图]
- apose-cell-22.6 excel转换pdf水印去除
- 动手焊板子流水账-测温数码管电机联动
- 最新:拼多多将追回所有“薅羊毛”订单,包括已充值话费和Q币订单
- 【高考那些事】准大学生看过来,选择方向和未来,自己把握
- COBOL语言总结(三)--JCL扩展
- python课程报告论文包含代码数据_归纳与总结一:Requests的使用
热门文章
- TensorFlow2-循环神经网络
- Cloud Programming Simplified: A Berkerley View on Serverless Computing笔记
- Python基础01-变量及数据类型
- HDU3400(计算几何中的三分法利用)
- 习题11-7 奇数值结点链表 (20 分) -链表
- nginx系列之六:cache服务
- 【Boost】boost库asio详解7——boost::asio::buffer用法
- Python中is和==有什么区别?
- XCode发布IPA离线安装包步骤
- sync.Once 的前世今生