题解 | #句子逆序#

句子逆序

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")

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

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

全部评论

相关推荐

小红书 后端选手 n*16*1.18+签字费期权
点赞 评论 收藏
分享
拒绝无效加班的小师弟很中意你:求职意向没有,年龄、课程冗余信息可以删掉,需要提升项目经历。排版需要修改。
点赞 评论 收藏
分享
冷艳的小师弟在看机会:jd测评乱点直接被挂了,哭死~
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务