有意思的字符串反转(JavaScript)
2015-08-11 17:42
531 查看
有意思的字符串反转
如果问你,实现对一串字符串进行反转操作,你的第一反应的方法是?第一个我想到的是,利用Array.Reverse来实现:
var test = 'Skylor.min'; test.split('').reverse().join('');
但是,一般被问这个问题,都是不能用这个函数的。。。。于是,我想到了堆栈来处理:
var stack = []; var result = []; for(var i = 0; i < str.length; i ++ ){ stack.push(str[i]); } for(var j = 0; j < str.length; j ++) { result[j] = stack.pop(); } console.log(result.join(''))
恩,这样也能解决问题,虽然两次循环和栈的开销无疑使这种方法成为开销很大的方法。但使用栈这个数据结构的想法还是非常有价值的。
但是一般这类反转都是可以用递归来写的:
function myReverse(str){ if(str.length === 1) { return str; } else { return myReverse(str.substring(1)) + str[0]; } }
其实,字符串反转还可以这样简单的来用另一个字符串循环赋值:
function myReverse(str) { var temp = []; for(var i = 0; i < str.length; i ++) { temp[i] = str[str.length - i -1]; } return temp.join(''); }
简单的问题,不一样的方法,不一样的思想。
相关文章推荐
- js小数点后保留几位方法:toFixed
- js小数点后保留几位方法:toFixed
- javascript要点整理(一)
- js模块化编程(二):AMD规范
- js模块化编程(一):模块的写法
- js中2个等号与3个等号的区别
- 闲来js基础-----2
- JavaScript基础学习之-javascript权威指南--第八章函数闭包
- JS获取当前时间的方法
- 【草稿】JS中如何操作时间
- JavaScript Puzzlers (试题)
- 学习zepto.js(原型方法)[2]
- 全选按钮的JS代码
- Cordys 读取配置文件 .json 或者 .properties 配置
- javascript学习笔记
- 如何批量删除指定文件或以什么结尾的文件
- javascript学习笔记之javascript类型
- FLASH CC 2015 CANVAS 中 createjs 移除绑定事件
- javascript 简单语法 对象属性及方法
- JS遍历list异常情况解决