百词斩笔试题解

//js实现原理
// 1.最大数字
var strArr = 'helloworld520iss1314'.split('');
var len = strArr.length,numArr=[];
var str;
for(var i=0; i<len; i++){
if(!isNaN(Number(strArr[i]))){
str += strArr[i];
numArr.push(str);
}else{
str = '';
}
}
numArr.sort((a,b) => {
return a-b;
});
console.log(Number(numArr[numArr.length-1]));
//
// 2.大于等于3连续表示为3-5(3,4,5)
var arr=[1,2],newArr=[],boss=[];
for(var i=0; i<arr.length; i++){
if(arr[i] + 1 ===arr[i+1]){
newArr.push(arr[i]);
newArr.push(arr[i+1]);
}
}
var x = [...new Set(newArr)];
if(newArr[0] >=3){
for(var i=0; i<arr.length; i++){
if(i<arr.indexOf(newArr[0])){
boss.push(arr[i])
}else if(i === arr.indexOf(newArr[0])){
boss.push(arr[i] + '-' + arr[arr.indexOf(newArr[newArr.length - 1])])
}else if(i > arr.indexOf(newArr[newArr.length - 1])){
boss.push(arr[i])
}
}
}else{
for(var i=0; i<arr.length; i++){
boss.push(arr[i])
}
}
console.log(boss.join(','));
//
// 3.排列组合
var arr = [1,5,9];
var newArr = [],boss=[];
var n =arr.length;
for(var i=0; i<n; i++){
for(var j=0; j<n; j++){
for(var k=0; k<n; k++){
newArr.push(arr[i].toString()+arr[j].toString()+arr[k].toString())
}
}
}
for(var i=0; i<newArr.length; i++){
if([... new Set(newArr[i])].length === newArr[i].length){
boss.push(newArr[i])
}
}
console.log(boss.sort((a,b) => a-b));
全部评论
看了的,觉得你写的好精炼,学到了
点赞 回复
分享
发布于 2018-03-25 12:51
楼主,你三道通全部AC了吗?
点赞 回复
分享
发布于 2018-03-25 12:55
秋招专场
校招火热招聘中
官网直投
哇 真的不懂为什么我本地能跑到上面就一个case都过不了。。。T-T
点赞 回复
分享
发布于 2018-03-25 13:26
第一道用math.max更好一些
点赞 回复
分享
发布于 2018-03-25 14:57
666 学习下
点赞 回复
分享
发布于 2018-03-25 16:29
请问一下只有算法题么?还是有其它计网,操作系统题?
点赞 回复
分享
发布于 2018-03-25 17:35
楼主,numArr.push(str)是一次一次push进去还是520最后一个0都写进str才一次性push到numArr里面啊。
点赞 回复
分享
发布于 2018-03-26 10:28

相关推荐

点赞 13 评论
分享
牛客网
牛客企业服务