首页
学习
活动
专区
圈层
工具
发布

字符串:替换空格

题目:剑指Offer 05.替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy."...首先扩充数组到每个空格替换成"%20"之后的大小。 然后从后向前替换空格,也就是双指针法,过程如下: i指向新长度的末尾,j指向旧长度的末尾。 ?...有同学问了,为什么要从后向前填充,从前向后填充不行么? 从前向后填充就是O(n^2)的算法了,因为每次添加元素都要将添加元素之后的所有元素向后移动。...这么做有两个好处: 不用申请新数组。 从后向前填充元素,避免了从前先后填充元素要来的 每次添加元素都要将添加元素之后的所有元素向后移动。...拓展 这里也给大家拓展一下字符串和数组有什么差别, 字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。

6.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    算法-字符串替换空格

    题目: 实现一个函数,把字符串中的每一个空格替换成”%20”。例如输入”We are happy.”,则输出”We%20are%20happy.”。...解题思路: 首先我们需要先想清楚一点,函数就要求输出替换后的结果,没有说是在原数据上替换,还是可以申请内存,创建一个新的字符串?...后者可以让问题变得简单,用比较直接的方式就可以实现一个时间复杂度为O(n)的代码,首先我们先遍历一遍字符串,找到到底有多少个空格以计算出替换后的长度,在上面的例子中,替换前是14,替换后是18,创建一个长度为...18的数组,然后我们只要在从头遍历一次原字符串,没有出现空格就直接复制原字符串的内容,出现空格了就写入”%20”: ?...那么这里有个前提条件,我们只能认为题目中给我们的数组长度是大于等于18的,要不然就会放不下,所以我们还可以先计算一下替换后的长度,然后加个判断,如果发现原数组长度不够,那就直接return好了,这样就可以成功甩锅

    3.8K60

    python中去除字符串前后空格

    1 问题 在python中,如何去除字符串前后空格? 2 方法 可以借助递归函数来去除前后空格。...s3 = ' A BC ' s4 = 'A BC' def trim(s): if s[0] == " ": return trim(s[1:]) # 如果开首有多个空格的话...,递归去除多个空格 elif s[-1] == " ": return trim(s[:-1]) # 如果末尾有多个空格的话,递归去除多个空格 else:...return s trim(s1) trim(s2) trim(s3) trim(s4) 3 结语 针对如何用python中去除字符串前后的空格问题,我们应该考虑是否有多个开首和末尾空格,有的话我们用递归去除多个空格...,通过Python实验,证明该方法是有效的,本文的方法略有简略,不够清晰和完整,可以在函数删除空格这一方面研究更多的有关问题。

    1.4K20

    Java去除字符串首尾的空格

    而字符串中可能会存在一些首尾的空格,这对数据的比较、查询等操作都会带来麻烦。因此,我们需要一种高效的方法来去除字符串首尾的空格。 本文将介绍一种基于Java语言的方法,来实现去除字符串首尾空格的功能。...但是,我们可以通过创建一个新的字符串对象,将需要的字符复制到新的字符串中,从而达到去除空格的目的。 案例分析: 假设我们有一个字符串" Hello, world! “,其中包含了首尾的空格。...trim()方法是Java提供的一个字符串方法,它会返回一个新的字符串,其中去除了原字符串首尾的空格。 接下来,我们需要判断去除空格前后的字符串是否相等。可以使用equals()方法进行比较。...如果相等,说明字符串没有首尾空格,直接返回原字符串即可。如果不相等,则说明字符串中包含了首尾空格,我们需要将去除空格后的字符串返回。...在代码中,我们首先使用trim()方法去除字符串首尾空格,然后通过equals()方法判断去除空格前后的字符串是否相等,从而确定是否存在首尾空格。

    43310
    领券