JavaScript--《剑指offer》-题二
2017-10-27 20:57
323 查看
原题:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
我的小白方案
因为有split()方法和jion方法,觉得很快就能解决这个题的需求,可是在测试的时候,他的性能(时间和空间不是最好的),看了一下别人的代码,真的不是一个水平
这段代码运行时间<1ms,这也可以看出正则表达式的强大,但是他的强大只限于会用的人。
分析:如果我们不用封装好的方法,我们可能这么想:
(1):替换字符串是在原来的基础上替换,还是弄一个副本替换
(2:要是在一个副本上替换,那我们是选择那个方向遍历,后往前还是前往后,后往前的话,中间插入%20就要一个一个往后面移,好像动静太大。
有了分析过后,我们就能更好的满足要求。(未完待续……)
我的小白方案
function replaceSpace(str) { return str.split(" ").join("%20"); }
因为有split()方法和jion方法,觉得很快就能解决这个题的需求,可是在测试的时候,他的性能(时间和空间不是最好的),看了一下别人的代码,真的不是一个水平
function replaceSpace(str) { return str.replace(/\s/g,'%20') }
这段代码运行时间<1ms,这也可以看出正则表达式的强大,但是他的强大只限于会用的人。
分析:如果我们不用封装好的方法,我们可能这么想:
(1):替换字符串是在原来的基础上替换,还是弄一个副本替换
(2:要是在一个副本上替换,那我们是选择那个方向遍历,后往前还是前往后,后往前的话,中间插入%20就要一个一个往后面移,好像动静太大。
有了分析过后,我们就能更好的满足要求。(未完待续……)
相关文章推荐
- JavaScript--《剑指offer》-题二十七
- 剑指offer题目练习及思路分析-JavaScript版(一)
- javascript 剑指offer
- JavaScript--《剑指offer》-题二十七
- 剑指offer(javascript实现)
- JavaScript解析Json
- RGraph: Free HTML5 and JavaScript charts
- javaScript-事件
- javascript读写文件(支持firefox和IE)
- Javascript实现秒表倒计时
- javascript中的打印(原生js以及jQuery)
- JavaScript DOM 编程艺术 ---> JavaScript语法
- 【JavaScript学习笔记】7:函数提升,变量提升,异常抛掷和捕获,ES6的Map和Set
- javascript中文编码/解析与C#ASP.NET中文编码/解析 C#: Server.UrlEncode() HttpUtility.UrlEncode() javascript: escape() encodeURI() encod
- JavaScript中的this到底是什么?
- javascript面向切面
- JavaScript中Require调用js的实例
- Javascript笔记 DAY6
- 十大经典排序算法的 JavaScript 实现
- javascript设置overflow-y