力扣-反转字符串中的单词
目录
🔗 题目链接
给你一个字符串 s
,请你反转字符串中单词的顺序。
单词是由非空格字符组成的字符串。s
中使用至少一个空格将字符串中的单词分隔开。
返回单词顺序颠倒且单词之间用单个空格连接的结果字符串。
注意:输入字符串 s
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
示例 1:
输入:
输出:
s = "the sky is blue"
输出:
"blue is sky the"
示例 2:
输入:s =
输出:
解释:反转后的字符串中不能存在前导空格和尾随空格。
" hello world "
输出:
"world hello"
解释:反转后的字符串中不能存在前导空格和尾随空格。
示例 3:
输入:s =
输出:
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
"a good example"
输出:
"example good a"
解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
提示:
- $1 <= s.length <= 10^4$
s
包含英文大小写字母、数字和空格' '
s
中至少存在一个单词
使用语言特性
思路和算法
很多语言对字符串提供了 split,reverse 和 join 等方法,因此我们可以简单的调用内置的 API 完成操作:1
- 使用
split
将字符串按空格分割成字符串数组; - 使用
reverse
将字符串数组进行反转; - 使用
join
方法将字符串数组拼成一个字符串。
|
|
复杂度分析
- 时间复杂度:$O(n)$,其中 $n$ 为输入字符串的长度。
- 空间复杂度:$O(n)$,用来存储字符串分割之后的结果。