面试题五:替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为“We Are Happy.”则经过替换之后的字符串为"We%20Are%20Happy."。

思路:看到这个题目,我们首先应该想到的是原来一个空格字符变为%20”后字符串会变长,有两种不同要求的方法:第一种,可以利用新的字符串,会有空间复杂度;第二种,仍在原来的字符串上替换,并且保证输入的字符串后面有足够多的空余内存。

第一种思路:重新定义一个字符串,在字符串A中发现空格时,在字符串B中放入%20,非空格,放入原元素。

第二种思路:为了不覆盖原字符串,选择倒着复制的方法:首先先确定空格的数目,决定最终字符串长度,先从最后一个字符起,这种方法永远不会先删去还没有复制的字符,剩下的空位完全正好够仍没有复制的字符。这种思想还可以用作删除字符a(bbabbdas),这种思路主要用在c++上,可以对字符进行单独更改。

还有一种思路:python有replace函数,可以直接替换

猜你喜欢

转载自blog.csdn.net/houyaqiong/article/details/80890016
今日推荐