每日一题 2019 - 05 - 13
题目:
Given an input string, reverse the string word by word.
Example 1:
1 | Input: "the sky is blue" |
Example 2:
1 | Input: " hello world! " |
Example 3:
1 | Input: "a good example" |
Note:
- A word is defined as a sequence of non-space characters.
- Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.
- You need to reduce multiple spaces between two words to a single space in the reversed string.
Follow up:
For C programmers, try to solve it in-place in O(1) extra space.
解法:
这个题让把给定字符串 s 中的单词全部进行逆序重新排列,但是单词自身的顺序不变,只改变位置顺序,所以使用数据结构栈就可以完成任务,但是在对单词进行提取过程中,需要注意一些点:
- 提取单词开始,如果是空格则一直跳过,不进行提取
- 当提取单词过程中遇到空格时候,则单词提取结束
- 如果到单词结尾,结尾符是空格则要保证提取的字符串少一位
代码:
1 | class Solution { |