关于字符串翻转的面试题(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; }
发现测试有问题 ,原来这个只是针对单个字符的翻转方法,所以不必过多撰述。
如有更好的方法,希望大神指点一二。

浙公网安备 33010602011771号