其他分享
首页 > 其他分享> > [牛客习题]逆置字符串

[牛客习题]逆置字符串

作者:互联网

题目描述

将一句话的单词进行倒置,标点不倒置。
比如 I like beijing. 经过函数后变为:beijing. like I

输入描述:

每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100

输出描述:

依次输出倒置之后的字符串,以空格分割
示例:
输入

I like beijing.

输出

beijing. like I

题目分析:

代码如下:

1.取巧的办法:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s1, s2;
    cin >> s1;

    while (cin >> s2)
        s1 = s2 + " " + s1;

    cout << s1 << endl;
    return 0;
}

2.完整解题思路:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    string str;
    getline(cin, str);

    reverse(str.begin(), str.end());

    auto start = str.begin();
    while(start != str.end())
    {
        auto end = start;
        while((end != str.end()) && *end != ' ')
            ++end;

        reverse(start, end);

        if(end != str.end())
            start = end+1;
        else
            start = end;
    }

    cout << str << endl;

    return 0;
}

标签:end,start,s2,s1,单词,牛客,str,习题,逆置
来源: https://blog.51cto.com/14289099/2619523