关于字符串翻转的面试题(1)

最近面试 碰到一个面试题 挺简单的 但是一时忘记可某些方法 后来回去思考了半天 思维有点跑偏 。具体题目的需求是这样的:

  有一个字符串“i am a student” ,要求将它进行输出结果为“student a am i”. 题目挺简单的,当时想到的是将它字符串分隔放到数组中 后来进行遍历输出,反转。具体见一下代码:

1 var str = "i am a student", arr=[], res = "";
2 var result = str.split(" ");
3 // result = ["i","am","a","student"];
4 for(var i=result.length;i>0;i--){
5     // 写到这里 我的思路是通过循环将result循环输出反向放到新数组arr中;
6     
7 }
8 
9 // 外部通过 arr.join(“ ”)方法输出

但是我发现在for循环这里卡住了,只怪技艺不精湛,写了半天调试发现结果不是我想要的;最后出来后想到了reverse方法直接翻转数组,整个人都不好了,最后得出方法如下:

var str = "i am a student";
var resStr = str.split(" ").reverse().join(" ");
console.log(resStr);

经过测试发现上面代码完全正确。

后来联想到单个字母的charAt方法

var myStr = function(str){
    var tmp = "";
    for(var i = str.length - 1;i>=0;i--){
            console.log(str.charAt(i)); // o l l e h
            tmp += str.charAt(i);
    }
            return tmp;
}

发现测试有问题 ,原来这个只是针对单个字符的翻转方法,所以不必过多撰述。

如有更好的方法,希望大神指点一二。

posted @ 2016-10-22 00:00  源自心安  阅读(354)  评论(1)    收藏  举报