HDU 1062 Text Reverse —— stack 的使用

问题描述

http://acm.hdu.edu.cn/showproblem.php?pid=1062

思路

遍历访问字符串的每个字符,若不是空格,则字符入栈,若是空格,将栈中字符顺序弹出并输出。

代码示例

#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main(){
    int t;
    cin>>t;getchar();
    while(t--){
        string tem;
        getline(cin,tem);
stack<char>s; for(int i=0;i<tem.size();i++){ if(tem[i]==' '){ while(!s.empty()){ cout<<s.top();s.pop(); } cout<<tem[i]; } else{ s.push(tem[i]); } } while(!s.empty()){ cout<<s.top();s.pop(); } cout<<endl; } }

知识点

例子

说明

stack<Type>s;

定义栈,Type为数据类型,如int,float,char等。

s.push(item);

把item放到栈顶。

s.top();

返回栈顶的元素,但不会删除。

s.pop();

删除栈顶的元素,但不会返回。

s.size();

返回栈中元素的个数。

s.empty();

检查栈是否为空,如果为空返回true,否则返回false。

 

上一篇:和为S的两个数字 --剑指offer


下一篇:【NOIP2019模拟赛】test