53. leetcode557. Reverse Words in a String III
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.
思路:可以利用栈,注意边界的处理。
class Solution { public: string reverseWords(string s) { int length = s.length(); string result(length, '\0'); stack<char> stk; int m = 0; for (int i = 0;i<length;i++) { if (s[i] != ' ') { stk.push(s[i]); } if (s[i] == ' ' || i==length-1) { while (!stk.empty()) { char e = stk.top(); result[m] = e; stk.pop(); ++m; } if(i!=length-1) { result[m] = ' '; ++m; } } } return result; } };