557. Reverse Words in a String III

题目描述:

Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.

Example 1:

Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"

 

Note: In the string, each word is separated by single space and there will not be any extra space in the string.

解题思路:

不难,根据空格找到每个单词,使用reverse方法进行翻转。在输入字符串本地操作,速度会快些。

代码:

 1 class Solution {
 2 public:
 3     string reverseWords(string s) {
 4         string res;
 5         size_t index;
 6         while ((index = s.find(" ")) != string::npos) {
 7             string word = s.substr(0, index);
 8             reverse(word.begin(), word.end());
 9             res += word + " ";
10             s = s.substr(index+1);
11         }
12         reverse(s.begin(), s.end());
13         res += s;
14         return res;
15     }
16 };

 

posted @ 2018-08-09 20:14  gszzsg  阅读(69)  评论(0编辑  收藏  举报