[LeetCode] 557. Reverse Words in a String III 翻转字符串中的单词 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.
151. Reverse Words in a String ,186. Reverse Words in a String II 的类似题目,这题是让翻转字符串里的单词。
Python:One Place
class Solution(object): def reverseWords(self, s): def reverse(s, begin, end): for i in xrange((end - begin) // 2): s[begin + i], s[end - 1 - i] = s[end - 1 - i], s[begin + i] s, i = list(s), 0 for j in xrange(len(s) + 1): if j == len(s) or s[j] == ' ': reverse(s, i, j) i = j + 1 return "".join(s)
Python:New Array
class Solution2(object): def reverseWords(self, s): reversed_words = [word[::-1] for word in s.split(' ')] return ' '.join(reversed_words)
C++:
class Solution { public: string reverseWords(string s) { for (int i = 0, j = 0; j <= s.length(); ++j) { if (j == s.length() || s[j] == ' ') { reverse(s.begin() + i, s.begin() + j); i = j + 1; } } return s; } };
类似题目:
[LeetCode] 151. Reverse Words in a String 翻转字符串中的单词
[LeetCode] 186. Reverse Words in a String II 翻转字符串中的单词 II
All LeetCode Questions List 题目汇总