【算法08天:Day8】第四章字符串 LeetCode 反转字符串里的单词(151)

68 阅读1分钟

题目四:

image.png

解法一:

解题思路:

1. 先用trim函数,将首尾的空格去掉,将字符串转换为字符数组
2. 由于后续的循环中右指针会指向最后一个字符的后一个位置,超出数组长度,因此将字符尾后一个位置设置为一个空字符
3. 第一次反转,先将各个单词反转
4. 第二次反转,将整个字符串进行反转
5. 字符串拼接,然后利用正则将内部多个空字符替换成单个空字符
6. 最后利用trim()去掉最后的空字符

image.png

解法二:(API)

  1. 使用 split 将字符串按空格分割成字符串数组;
  2. 使用 reverse 将字符串数组进行反转;
  3. 使用 join 方法将字符串数组拼成一个字符串。

image.png

注意:split('') 切割出来的是一个个单个字符, split(' ')切割出来的是一个个单词。

image.png

解法三:(双端队列)

image.png

题解思路:这个是参考LeetCode内别人的思路的,大概意思就是先将一个个单个字符拼成单词,然后将单词推入队列,最后再转回字符串。