STL专题-栈

天涯浪子 提交于 2020-03-05 10:23:57
#include<iostream>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<algorithm>
#include<cmath>
#include<list>
#include<cstdlib>
#include<cstring>
using namespace std;
int main(){
    string s;
    int t;
    cin>>t;
    getchar();
    while(t--){
        getline(cin,s);//输入空格需要用getline
        int len;
        len=(int )s.size();
        stack<char >st;
        for(int i=0;i<len;i++){
            if(s[i]!=' '){
                st.push(s[i]);//持续入栈
            }
            if(s[i]==' '||i==len-1){//遇到空格或栈满的情况
                while(!st.empty()){//栈非空
                    printf("%c",st.top());//打印栈顶元素
                    st.pop();//删除栈顶元素
                }
                if(s[i]==' '){
                    cout<<" ";//输出空格
                }
            }
        }
        cout<<endl;
    }
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!