原题
Given an input string , reverse the string word by word.
Example:
Input: [“t”,“h”,“e”," “,“s”,“k”,“y”,” “,“i”,“s”,” “,“b”,“l”,“u”,“e”]
Output: [“b”,“l”,“u”,“e”,” “,“i”,“s”,” “,“s”,“k”,“y”,” ",“t”,“h”,“e”]
Note:
A word is defined as a sequence of non-space characters.
The input string does not contain leading or trailing spaces.
The words are always separated by a single space.
Follow up: Could you do it in-place without allocating extra space?
解法
字符串处理, 最后深度复制给str.
代码
class Solution:
def reverseWords(self, str: List[str]) -> None:
"""
Do not return anything, modify str in-place instead.
"""
str_list = ''.join(str).split(' ')
str_list.reverse()
ans = ' '.join(str_list)
str[:] = list(ans)