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?