考察的知识点:字符串、双指针;

解答方法分析:

  1. 将输入的字符串按照空格分割为单词,存储到一个数组或列表中。
  2. 使用双指针技巧,将单词数组中的元素进行逆序交换,即将数组首尾元素进行交换,然后依次将首指针向后移动、尾指针向前移动,继续进行交换,直到首指针和尾指针相遇。
  3. 将逆序后的单词数组拼接为一个字符串,单词之间用空格分隔。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return string字符串
     */
    string reverseWords(string s) {
        vector<string> words;
        istringstream iss(s);
        string word;
        while (iss >> word) {
            words.push_back(word);
        }
        reverse(words.begin(), words.end());
        string result;
        for (int i = 0; i < words.size(); i++) {
            result += words[i];
            if (i < words.size() - 1) {
                result += " ";
            }
        }
        return result;
    }

};