Files
LeetCode-Go/website/content/ChapterFour/0557.Reverse-Words-in-a-String-III.md
2020-08-09 00:39:24 +08:00

57 lines
1.3 KiB
Markdown
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [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)
}
```