题目简介
给定一个字符串,逐个翻转字符串中的每个单词。
示例:
输入: “the sky is blue”,
输出: “blue is sky the”.
说明:
无空格字符构成一个单词。
输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
进阶: 请选用C语言的用户尝试使用 O(1) 空间复杂度的原地解法。
思路
这道题感觉是 557. 反转字符串中的单词 III 的升级版本,主要是将整个字符串反转,然后在将每个词反转一下就ok啦。
#include <stdio.h>
#include <algorithm>
#include <string>
#include <string.h>
#include <iostream>
using namespace std;
class Solution {
public:
void reverseWords( string &s )
{
if ( s.size() <= 0 )
return;
string::iterator it = s