美文网首页双指针
【剑指 offer】翻转单词顺序。

【剑指 offer】翻转单词顺序。

作者: 邓泽军_3679 | 来源:发表于2019-05-09 10:21 被阅读0次

    1、题目描述

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。

    为简单起见,标点符号和普通字母一样处理。

    例如输入字符串"I am a student.",则输出"student. a am I"。

    样例

    输入:"I am a student."
    输出:"student. a am I"

    2、问题描述:

    3、问题关键:

    • 将整个句子翻转。reverse(s.begin(), s.end())
    • 将每个单词翻转就可以了。reverse(s.begin() + i, s.begin() + j)

    4、C++代码:

    class Solution {
    public:
        string reverseWords(string s) {
            if (s.empty()) return s;
            int n = s.size();
            reverse(s.begin(), s.end());
            for (int i = 0; i < n; i ++) {
                int j = i;
                while(j < n && s[j] != ' ') j ++;
                reverse(s.begin() + i, s.begin() + j);
                i = j;
            }
            return s;
        }
    };
    

    相关文章

      网友评论

        本文标题:【剑指 offer】翻转单词顺序。

        本文链接:https://www.haomeiwen.com/subject/rvmioqtx.html