题解 | 句子逆序

句子逆序

https://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3?tpId=37&tqId=21236&rp=1&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

#include <iostream>
#include<string>
#include<vector>
#include<bits/stdc++.h>
#include <algorithm>
using namespace std;
string reverseSentence(string s) {
    // 1. 先反转整个字符串
    reverse(s.begin(), s.end());
    
    // 2. 再反转每个单词
    int start = 0;
    for (int i = 0; i <= s.length(); i++) {
        // 遇到空格或到达字符串末尾时,反转当前单词
        if (i == s.length() || s[i] == ' ') {
            reverse(s.begin() + start, s.begin() + i);
            start = i + 1;
        }
    }
    
    return s;
}

int main() {
    string s;
    getline(cin, s);
    string result = reverseSentence(s);
    cout << result << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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