mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-31 16:14:39 +08:00
57 lines
1.3 KiB
Markdown
Executable File
57 lines
1.3 KiB
Markdown
Executable File
# [557. Reverse Words in a String III](https://leetcode.com/problems/reverse-words-in-a-string-iii/)
|
||
|
||
|
||
## 题目
|
||
|
||
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
|
||
|
||
**Example 1**:
|
||
|
||
Input: "Let's take LeetCode contest"
|
||
Output: "s'teL ekat edoCteeL tsetnoc"
|
||
|
||
**Note**: In the string, each word is separated by single space and there will not be any extra space in the string.
|
||
|
||
|
||
## 题目大意
|
||
|
||
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
|
||
|
||
|
||
## 解题思路
|
||
|
||
|
||
- 反转字符串,要求按照空格隔开的小字符串为单位反转。
|
||
- 这是一道简单题。按照题意反转每个空格隔开的单词即可。
|
||
|
||
|
||
## 代码
|
||
|
||
```go
|
||
|
||
package leetcode
|
||
|
||
import (
|
||
"strings"
|
||
)
|
||
|
||
func reverseWords(s string) string {
|
||
ss := strings.Split(s, " ")
|
||
for i, s := range ss {
|
||
ss[i] = revers(s)
|
||
}
|
||
return strings.Join(ss, " ")
|
||
}
|
||
|
||
func revers(s string) string {
|
||
bytes := []byte(s)
|
||
i, j := 0, len(bytes)-1
|
||
for i < j {
|
||
bytes[i], bytes[j] = bytes[j], bytes[i]
|
||
i++
|
||
j--
|
||
}
|
||
return string(bytes)
|
||
}
|
||
|
||
``` |