- 题目
句子反转
时间限制:1秒 空间限制:32768K 热度指数:55050
算法知识视频讲解
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
题目描述
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”
输入描述:
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)
输出描述:
对于每个测试示例,要求输出句子中单词反转后形成的句子
示例1
输入
复制
hello xiao mi
输出
复制
mi xiao hello
- 解法
代码
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str, current, result;
while (getline(cin,str))
{
reverse(str.begin(), str.end());
for (int i = 0; i<str.size(); i++)
{
if (str[i] == ' ')
{
reverse(current.begin(), current.end());
result = result + current;
result += ' ';
current.clear();
}
else
current += str[i];
}
reverse(current.begin(), current.end());
result += current;
cout << result << endl;
current.clear();
result.clear();
}
return 0;
}