反转句子

2018-04-08  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读