腾讯 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); #腾讯##前端#

查看11道真题和解析