小米 秋招 笔试 编程题 句子反转

  • 题目
    句子反转
    时间限制: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;
}

猜你喜欢

转载自blog.csdn.net/whwan11/article/details/82784704