2176. 【一命通关】之STL模板
1000ms
512MB
简单
一命通关系列
题目描述
欢迎来到"一命通关"系列第七关!本关考验你对 C++ STL 常用容器的应用能力。
请根据以下五个任务的要求,选择合适的容器完成操作:
任务1:动态数组 (Vector)
读入 n 个整数存入 vector,然后使用迭代器或下标访问,输出所有偶数。
任务2:栈的应用 (Stack)
给定一个只包含 '(' 和 ')' 的字符串,利用 stack 判断括号是否匹配。如果匹配输出 "Valid",否则输出 "Invalid"。
任务3:队列模拟 (Queue)
模拟一个简单的排队系统。输入一系列操作:push x 表示有人入队,pop 表示队首出队。最后输出队列中剩余的所有元素(从队首到队尾)。
任务4:频率统计 (Map)
读入 n 个单词,使用 map<string, int> 统计每个单词出现的次数。最后按字典序输出所有单词及其出现次数。
任务5:去重与排序 (Set)
读入 n 个整数,使用 set 自动去重并排序。最后输出集合中所有不重复的元素(从小到大)。
输入格式
- 第一行:整数 n1,接下来一行 n1 个整数(任务1)。
- 第二行:一个括号字符串(任务2)。
- 第三行:整数 m,接下来 m 行每行一个操作
push x或pop(任务3)。 - 第四行:整数 n2,接下来一行 n2 个单词(任务4)。
- 第五行:整数 n3,接下来一行 n3 个整数(任务5)。
输出格式
按照任务顺序输出结果,每个任务的结果占一行或多行(见样例)。
样例 1
输入 (Input)
5 1 2 3 4 5 (())() 4 push 10 push 20 pop push 30 4 apple banana apple orange 6 5 3 5 1 3 2
输出 (Output)
2 4 Valid 20 30 apple 2 banana 1 orange 1 1 2 3 5
- Vector:
push_back()添加元素,size()获取大小。 - Stack:
push(),pop(),top(),empty()。注意pop前要先检查是否为空。 - Queue:
push(),pop(),front(),back()。 - Map:
mp[key]++可以直接增加计数;map默认按键的字典序排列。 - Set:
insert()插入元素;set默认自动去重并按升序排列。 - 头文件:需要包含
<vector>,<stack>,<queue>,<map>,<set>,<string>。
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout
错误 stderr
操作成功