344.反转字符串
题目链接/文章讲解/视频讲解:
代码随想录
双指针,一个从前往后,一个从后往前,两指针指向的元素交换位置。
时间复杂度 O(n),空间复杂度 O(1)。
541. 反转字符串II
题目链接/文章讲解/视频讲解:
代码随想录
上一题的拓展。首先 for 循环,通过将 step 设置为 2*k 来圈定反转大范围,再将反转区间内的元素进行反转。
时间复杂度 O(n),空间复杂度 O(n)。
剑指Offer 05.替换空格
题目链接/文章讲解:代码随想录
如果在字符串能改变的语言中,可以通过双指针来节省额外空间。首先将字符串大小扩展到相应大小,前指针指向原字符串末尾,后指针指向扩展后的字符串末尾,从后向前填充,直到两指针相遇。但在 python 里,字符串无法更改,需要先将字符串转成列表进行操作,因此无法节省额外空间。
就不如直接操作算了。
时间复杂度 O(n),空间复杂度 O(1)。