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

有意思的字符串反转(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('');

}


简单的问题,不一样的方法,不一样的思想。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: