问题描述
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。 |