华为机试HJ13:句子逆序

Posted 翟天保Steven

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试HJ13:句子逆序相关的知识,希望对你有一定的参考价值。

题目描述:

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

输入描述:

输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

输出描述:

得到逆序的句子

示例:

输入:I am a boy

输出:boy a am I

解题思路:

输入字符串后,每有一个空格,就将空格前的字符串扔到vector里,最后的单词因为后面没有空格,所以循环结束后还要再扔一次临时字符串。

测试代码:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
    string str;
    getline(cin,str);
    vector<string> words;
    int size=str.size();
    string temp;
    for(int i=0;i<size;++i)
    {
        if(str[i]!=' ')
        {
            temp+=str[i];
        }
        else{
            words.push_back(temp);
            temp.clear();
        }
    }
    words.push_back(temp);
    for(int i=words.size()-1;i>=0;--i)
    {
        cout<<words[i]<<" ";
    }
    return 0;
}

以上是关于华为机试HJ13:句子逆序的主要内容,如果未能解决你的问题,请参考以下文章

华为机试HJ106:字符逆序

华为机试练习句子逆序

华为机试HJ11:数字颠倒

华为python机试题目:计算字符个数简单错误记录简单密码进制转换句子逆序密码验证合格程序

华为机试题 HJ106字符逆序

华为机试题 HJ106字符逆序