mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
优化 0151.翻转字符串里的单词Go示例
This commit is contained in:
@ -546,26 +546,28 @@ func reverseWords(s string) string {
|
|||||||
b = b[:slowIndex]
|
b = b[:slowIndex]
|
||||||
}
|
}
|
||||||
//2.反转整个字符串
|
//2.反转整个字符串
|
||||||
reverse(&b, 0, len(b)-1)
|
reverse(b)
|
||||||
//3.反转单个单词 i单词开始位置,j单词结束位置
|
//3.反转单个单词 i单词开始位置,j单词结束位置
|
||||||
i := 0
|
i := 0
|
||||||
for i < len(b) {
|
for i < len(b) {
|
||||||
j := i
|
j := i
|
||||||
for ; j < len(b) && b[j] != ' '; j++ {
|
for ; j < len(b) && b[j] != ' '; j++ {
|
||||||
}
|
}
|
||||||
reverse(&b, i, j-1)
|
reverse(b[i:j])
|
||||||
i = j
|
i = j
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
return string(b)
|
return string(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func reverse(b *[]byte, left, right int) {
|
func reverse(b []byte) {
|
||||||
for left < right {
|
left := 0
|
||||||
(*b)[left], (*b)[right] = (*b)[right], (*b)[left]
|
right := len(b) - 1
|
||||||
left++
|
for left < right {
|
||||||
right--
|
b[left], b[right] = b[right], b[left]
|
||||||
}
|
left++
|
||||||
|
right--
|
||||||
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user