172 - 151 翻转字符串里面的单词 - 044
题目
给定一个字符串,逐个翻转字符串中的每个单词。
示例 1:
输入: "the sky is blue" 输出: "blue is sky the"
示例 2:
输入: " hello world! " 输出: "world! hello" 解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。
示例 3:
输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。
说明:
- 无空格字符构成一个单词。 
- 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 
- 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 
解答
- 字符串进来后前后去掉空格 
- 空格拆开 
- 翻转字符串,用空格连起来 - 如果一个字符是空,那么就跳过 
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.
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.
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.
Last updated
Was this helpful?