题目四:
解题思路:
1. 先用trim函数,将首尾的空格去掉,将字符串转换为字符数组
2. 由于后续的循环中右指针会指向最后一个字符的后一个位置,超出数组长度,因此将字符尾后一个位置设置为一个空字符
3. 第一次反转,先将各个单词反转
4. 第二次反转,将整个字符串进行反转
5. 字符串拼接,然后利用正则将内部多个空字符替换成单个空字符
6. 最后利用trim()去掉最后的空字符
解法二:(API)
- 使用
split将字符串按空格分割成字符串数组; - 使用
reverse将字符串数组进行反转; - 使用
join方法将字符串数组拼成一个字符串。
注意:split('') 切割出来的是一个个单个字符, split(' ')切割出来的是一个个单词。
解法三:(双端队列)
题解思路:这个是参考LeetCode内别人的思路的,大概意思就是先将一个个单个字符拼成单词,然后将单词推入队列,最后再转回字符串。