题目三:
解法一:(库函数)
当然库函数不是我们重点关注的。
解法二:(原地替换)
解题思路:
1. 将字符串转换为数组,然后统计其中的空格数量
2. 根据空格数量和原有字符串有效字符长度,计算出刚好存放替换后的字符长度的数组
3. 创建两个指针,一个指向数组末尾,一个指向字符串有效位的末尾,实现原地修改
值得注意的是:数组遍历,一定要从后往前遍历,避免从前往后,造成字符被修改,导致错误!
解法三:(循环替换)
总结: 其实很多数组填充类的问题,都可以先预先给数组扩容带填充后的大小,然后在从后向前进行操作。
1. 不用申请新数组。
2. 从后向前填充元素,避免了从前向后填充元素时,每次添加元素都要将添加元素之后的所有元素向后移动。