题目:
给你一个句子(只包含字母和空格),将句子中的单词位置反转,单词用空格分割,单词之间只有一个空格,前后没有空格。比如:(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;
}
网友评论