Back to Leetcode Go

557. Reverse Words in a String III

website/content/ChapterFour/0500~0599/0557.Reverse-Words-in-a-String-III.md

1.7.11.6 KB
Original Source

557. 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)
}


<div style="display: flex;justify-content: space-between;align-items: center;"> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0500~0599/0554.Brick-Wall/">⬅️上一页</a></p> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0500~0599/0559.Maximum-Depth-of-N-ary-Tree/">下一页➡️</a></p> </div>