本文主要是介绍E (1081) : DS堆栈--逆序输出(STL栈使用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Description
C++中已经自带堆栈对象stack,无需编写堆栈操作的具体实现代码。
本题目主要帮助大家熟悉stack对象的使用,然后实现字符串的逆序输出
输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出
stack类使用的参考代码
- 包含头文件
<stack>
:#include <stack>
- 创建一个堆栈对象
s
(注意stack
是模板类):stack <char> s; //堆栈的数据类型是字符型
- 把一个字符
ct
压入堆栈:s.push(ct);
- 把栈顶元素弹出:
s.pop();
- 获取栈顶元素,放入变量
c2
:c2 = s.top();
- 判断堆栈是否空:
s.empty()
,如果为空则函数返回true
,如果不空则返回false
Input
第一行输入t
,表示有t
个测试实例 第二起,每一行输入一个字符串,注意字符串不包含空格
字符串的输入可以考虑以下代码:
#include <string>
int main()
{ string str;int len;cin >> str; //把输入的字符串保存在变量str中len = str.length() //获取输入字符串的长度
}
Output
每行逆序输出每一个字符串
Sample
Input
2 abcdef aabbcc
Output
fedcba ccbbaa
AC代码:
#include <stack>
#include <iostream>
#include <cstring>
using namespace std;
//答案仅供参考,请勿直接复制粘贴
int main() {int t;cin >> t;string str;int len;while (t--) {stack <char> s;cin >> str;len = str.length();for (int i = 0; i < len; i++) {s.push(str[i]);}if (!s.empty()) {for (int i = 0; i < len; i++) {cout << s.top();s.pop();}cout << endl;}}
}
这篇关于E (1081) : DS堆栈--逆序输出(STL栈使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!