题目链接: https://leetcode.cn/problems/reverse-words-in-a-string
- 从字符串s末尾开始遍历,遇到非空格就追加到tmp前面,遇到空格就将tmp拼接到res后面
func reverseWords(s string) string {
res,tmp := "",""
for i := len(s) - 1; i >= 0; i-- {
if s[i] != ' ' {
tmp = string(s[i]) + tmp
} else if tmp != "" {
res = getStr(res, tmp)
tmp = ""
}
}
if tmp != "" {
res = getStr(res, tmp)
}
return res
}
func getStr(res, tmp string) string {
if len(res) != 0 {
res += " "
}
return res + tmp
}
-
时间复杂度:
$$O(n)$$ -
空间复杂度:
$$O(n)$$