美文网首页
反转句子

反转句子

作者: 吴业鹏 | 来源:发表于2018-04-08 00:50 被阅读0次

    题目:
    给你一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割,单词之间只有一个空格,前后没有空格。比如:(1)“hello xiao mi” - >“ mi xiao hello“

    /*用栈是最简单的,栈的规则是后进先出,则最后一个输入的字符最先输出,
    当然也可以用容器来做,把输入的单词后插入容器vector中,然后输出时是从后往前逐个取出单词*/
    
    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    int main()
    {
        string s;
        vector<string> vec;
        while(cin>>s)
            vec.push_back(s);
        for(int i=vec.size()-1;i>0;i--)
            cout<<vec[i]<<' ';
        cout<<vec[0];
        return 0;
    }
    
    #include<iostream>
    #include<stack>
    #include<string>
    using namespace std;
    int main() {
        string str;
        stack<string> sstack;
        while (cin >> str) {
            sstack.push(str);
        }
        while (sstack.size()!= 1) {
            cout << sstack.top() << " ";//每个输出的元素后面都会带一个空格
            sstack.pop();
        }
        cout << sstack.top() << endl;//最后一个要在循环外输出的原因是,最后一个数据输出时不可以有空格,要带换行符,如果有空格会显示格式错误(注意题目中的前后没有空格)
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:反转句子

          本文链接:https://www.haomeiwen.com/subject/ovguhftx.html