腾讯 9.16 前端开发岗笔试题
啥也不说了,和头条比起来,TX的编程题简直...好简单,感觉都不能叫算法题
js 直接撸,,,没啥算法,就数学思路,一路往下就行...完全不用考虑什么复杂度
代码很粗糙,因为想到哪儿写到哪儿,也没做优化,凑合着看一看吧 - -
// 第一题 --------------------------- var n = parseInt(readline()); var ans = 0; for(var i = 0;i n; i++){ var num = readline(); // 读取的数字 var numArr = num.toString().split(''); // 变成数组 numArr.forEach(function(ele, index) { numArr[index] = parseInt(ele); }); // 变成数字 var total = numArr.reduce(function(total, pre) { return total + pre; }, 0); // 求和 if (parseInt(num) % total === 0) { console.log('Yes'); } else { console.log('No'); } } // 第二题 -------------------------- var n = parseInt(readline()); var ans = 0; var res = 1; var arr = readline().split(' '); var str = arr.join(''); str = str.replace(/\b0+/,''); str = str.replace(/0+\b/,''); // 去掉前后的0 if (str.length 1) { console.log(1); // 只有一个坚果,那就不掰 } else { var temp = str.split('1'); temp.forEach(function(ele) { var len = ele.length; if (len !== 0 ) { res *= (len +1) } }); console.log(res); } // 第三题 --------------------------- var str = readline(); // 源 var target = readline(); // 目标 var tarlen = target.length; // 目标子串的长度 var arr = []; var index = str.indexOf(target, 0); while(index != -1) { arr.push([index, index + tarlen]); // 把集合区间push进去 index = str.indexOf(target, index + 1); } var res = 0; for (var i = 0; i arr.length - 1; i++) { if (arr[i][1] >= arr[i+1][0]) { arr[i + 1][0] = arr[i][0]; arr[i][0] = arr[i][1] = 0; } } for (var i = 0; i arr.length; i++) { res += (arr[i][1] - arr[i][0]) * (arr[i][1] - arr[i][0]); } console.log(res);
#腾讯##前端#