今天晚上参加了51信用卡的前端笔试,感觉选择题还可以,除了一些不确定,大多数都还ok,但是气人的就是一道算法题都没有写,凉凉,然后交卷之后,在我的不懈努力下 ,终于写出了一道,虽然没有写在卷子上,但是还是很开心,嗯,开心,开心。
题目:将字符串转换为新的字符串,在新的字符串中,如果该字符在原始字符串中只出现一次,用"("表示,出现多次用")"表示
例如:
credit
输出为:(((((((
create
输出为:(()(();
然后我就根据我的想法,比较笨笨,很笨很笨的方法写了一下;
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
function test(str){
var arr=str.split("");
var newArr=[];
var newArr1=[];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
newArr=arr.slice(0,i).concat(arr.slice(i+1));
console.log(newArr);
var m=arr[i];
for(var j=0;j<newArr.length;j++){
if(arr[i]==newArr[j]){
console.log("0");
m=")";
break;
}
else{
m="(";
}
}
newArr1.push(m);
}
newArr1=newArr1.join("");
console.log(newArr1);
}
test("create");
</script>
</body>
</html>
方法很笨,这个可能跟人有关系,就是想不出来好一点的方法,就只能想出这个方法!!!
网友评论