您的位置:首页 > Web前端 > JavaScript

JavaScript--《剑指offer》-题二

2017-10-27 20:57 323 查看
原题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

我的小白方案

function replaceSpace(str)
{
return str.split(" ").join("%20");
}


因为有split()方法和jion方法,觉得很快就能解决这个题的需求,可是在测试的时候,他的性能(时间和空间不是最好的),看了一下别人的代码,真的不是一个水平

function replaceSpace(str)
{
return str.replace(/\s/g,'%20')
}


这段代码运行时间<1ms,这也可以看出正则表达式的强大,但是他的强大只限于会用的人。

分析:如果我们不用封装好的方法,我们可能这么想:

(1):替换字符串是在原来的基础上替换,还是弄一个副本替换

(2:要是在一个副本上替换,那我们是选择那个方向遍历,后往前还是前往后,后往前的话,中间插入%20就要一个一个往后面移,好像动静太大。

有了分析过后,我们就能更好的满足要求。(未完待续……)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: