# 172 - 151 翻转字符串里面的单词 - 044

## 题目

给定一个字符串，逐个翻转字符串中的每个单词。

示例 1：

> 输入: "the sky is blue" 输出: "blue is sky the"

示例 2：

> 输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格，但是反转后的字符不能包括。

示例 3：

> 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格，将反转后单词间的空格减少到只含一个。

说明：

* 无空格字符构成一个单词。
* 输入字符串可以在前面或者后面包含多余的空格，但是反转后的字符不能包括。
* 如果两个单词间有多余的空格，将反转后单词间的空格减少到只含一个。

## 解答

1. 字符串进来后前后去掉空格
2. 空格拆开
3. 翻转字符串，用空格连起来

   如果一个字符是空，那么就跳过

```python
class Solution:
    def reverseWords(self, s: str) -> str:
        s = s.strip()
        words = s.split(" ")
        return " ".join([word for word in reversed(words) if word != ""])
```

> Runtime: 32 ms, faster than 75.81% of Python3 online submissions for Reverse Words in a String.
>
> Memory Usage: 13.3 MB, less than 100.00% of Python3 online submissions for Reverse Words in a String.

```javascript
var reverseWords = function(s) {
  s = s.trim().split(" ").reverse()
  let ans = ""
  for (const item of s) {
    if (item) {
      ans += item + " "
    }
  }
  return ans.slice(0, ans.length - 1)
};
```

> Runtime: 72 ms, faster than 13.52% of JavaScript online submissions for Reverse Words in a String.
>
> Memory Usage: 34.4 MB, less than 90.91% of JavaScript online submissions for Reverse Words in a String.

```go
func reverseWords(s string) string {
    s = strings.Trim(s, " ")
    if s == "" {
        return s
    }
    words := strings.Split(s, " ")
    var ans string
    for i := len(words) - 1; i >= 0; i-- {
        if words[i] != "" {
            ans += words[i] + " "
        }
    }
    return ans[0 : len(ans)-1]
}
```

> Runtime: 4 ms, faster than 49.48% of Go online submissions for Reverse Words in a String.
>
> Memory Usage: 8.4 MB, less than 50.00% of Go online submissions for Reverse Words in a String.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://joey-zhouyicheng.gitbook.io/leetcode/172-151-fan-zhuan-zi-fu-chuan-li-mian-de-dan-ci-044.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
