题目:请实现一个函数,把字符串的每个空格替换成“%20”。例如:输入:“we are happy.”,则输出:“we%20are%20happy.”
这里考虑的是在原来的字符串上做替换这一种情况:
若我们用直接做法从头到尾扫描字符串,每碰到一个空格就做替换,其空格后面的字符都必须后移两个字节,如图:
浅黄色背景代表需要移动的字符,紫色背景代表需要移动两次的字符,因此,若这样做,有O(n)个空格的话总时间效率为O(n^2),所以我们要寻找一种更快的方法,那就是把从前向后替换改成从后向前替换。
如图过程:<