题解 | #句子逆序#

句子逆序

https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3

#include <iostream>
// 该头文件包含“reverse()”函数
#include <algorithm>
using namespace std;

int main() {
    string s;
    // 输入中包含空格,所以采用getline作为读取输入的方式
    getline(cin, s);
    int n = s.size();
    reverse(s.begin(), s.end());
    for (int i = 0; i < n; i++) {
        int sta = i;
        while ((i < n && s[i] != ' ') || i==n-1 ) {
            i++;
        }
        int en = i;
        reverse(s.begin() + sta, s.begin() + en);
    }
    cout << s << endl;

    return 0;
}
// 64 位输出请用 printf("%lld")

经典的全部反转再挑选非空格的部分进行翻转的思路。

需要注意的是,部分翻转的情况总是要注意最后一个字符的结尾不是空格而是结束符,需要把这一点考虑进去。

全部评论

相关推荐

01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务