Reverse Words In A String III
题目描述
反转字符串中的单词3
给定一个字符串,请反转字符串中每个单词的字符顺序,同时保留空格和单词的初始顺序。
示例
输入:"Let's take Leetcode contest"
输出:"s'teL ekat edoCteeL tsetnoc"
解法
解法一:一次遍历 + 双指针
时间复杂度:
O(n)
空间复杂度:
O(n)
func reverseWords(s string) string {
n := len(s)
b := []byte(s)
wl, wr := 0, 0
for wr < n {
if wr > 0 && b[wr-1] == ' ' {
wl = wr
}
if wr == n-1 || b[wr+1] == ' ' {
left, right := wl, wr
for left < right {
b[left], b[right] = b[right], b[left]
left++
right--
}
}
wr++
}
return string(b)
}
Last updated
Was this helpful?