如何用刷题剑指Offer05方法替换文本中的空格?
- 内容介绍
- 文章标签
- 相关推荐
本文共计506个文字,预计阅读时间需要3分钟。
题目:请实现一个函数,将字符串中的每个空格替换为+。
示例:输入:s=We are happy.输出:We+are+happy.
思路:要将字符串中的空格替换为+,首先需要在原有的字符数组中找到空格的位置。接着,在数组中空格的位置插入+字符,并相应地调整后续字符的位置。最后,将修改后的字符数组转换回字符串并输出。
题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1: 输入:s = "We are happy."输出:"We%20are%20happy.
思路
要把字符串中的空格替换成%20,首先就是在原有的字符数组里扩容,相当于每个空格再额外扩大两个空格的位置。然后通过双指针的方法,将i指针指向未扩容的数组末尾,j指针指向扩容后的数组末尾,然后从后往前填充。如果从前往后填充的话,每次添加元素都要将添加元素之后的所有元素向后移动,增加了时间复杂度为O(n^2)。
本文共计506个文字,预计阅读时间需要3分钟。
题目:请实现一个函数,将字符串中的每个空格替换为+。
示例:输入:s=We are happy.输出:We+are+happy.
思路:要将字符串中的空格替换为+,首先需要在原有的字符数组中找到空格的位置。接着,在数组中空格的位置插入+字符,并相应地调整后续字符的位置。最后,将修改后的字符数组转换回字符串并输出。
题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1: 输入:s = "We are happy."输出:"We%20are%20happy.
思路
要把字符串中的空格替换成%20,首先就是在原有的字符数组里扩容,相当于每个空格再额外扩大两个空格的位置。然后通过双指针的方法,将i指针指向未扩容的数组末尾,j指针指向扩容后的数组末尾,然后从后往前填充。如果从前往后填充的话,每次添加元素都要将添加元素之后的所有元素向后移动,增加了时间复杂度为O(n^2)。

