考察的知识点:字符串、双指针;
解答方法分析:
- 将输入的字符串按照空格分割为单词,存储到一个数组或列表中。
- 使用双指针技巧,将单词数组中的元素进行逆序交换,即将数组首尾元素进行交换,然后依次将首指针向后移动、尾指针向前移动,继续进行交换,直到首指针和尾指针相遇。
- 将逆序后的单词数组拼接为一个字符串,单词之间用空格分隔。
所用编程语言: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; } };