4.5 腾讯前端笔试编程题
除了第三题 都不保证一定AC 如果有问题 麻烦告诉我
第一题画画板
while(line = readline()) { line = line.split(" "); var n = parseInt(line[0]), m = parseInt(line[1]), i = 0, j = 0, tmp = '', l = 0, k = 0, arr = [], counter = 0; for(i = 0; i < n; i++) { arr[i] = []; tmp = readline(); arr[i] = tmp.split(""); } // \对角线 // 下三角 for(i = 0; i < n; i++) { l = i; k = 0; while(l < n && k < m) { if(arr[l][k] === 'Y' || arr[l][k] === 'G') { counter++; break; } l++; k++; } } // 上三角 for(j = 1; j < m; j++) { l = 0; k = j; while(l < n && k < m) { if(arr[l][k] === 'Y' || arr[l][k] === 'G') { counter++; break; } l++; k++; } } // /对角线 // 下三角 for(i = 1; i < n; i++) { l = i; k = m-1; while(l < n && k >= 0) { if(arr[l][k] === 'B' || arr[l][k] === 'G') { counter++; break; } l++; k--; } } // 上三角 for(j = m-1; j >= 0; j--) { l = 0; k = j; while(l < n && k >= 0) { if(arr[l][k] === 'B' || arr[l][k] === 'G') { counter++; break; } l++; k--; } } print(counter); }
第二题 巧克力: 爸妈出差N天 总共给了M块巧克力, 保证巧克力可以一直吃到爸妈回来,且后一天吃的巧克力至少是前一天的一半 问:第一天最多可以吃多少? while(line = readline()) { line = line.split(" "); var N = parseInt(line[0]), M = parseInt(line[1]), first = 1, last = M; while(first + 1 < last) { var mid = parseInt(first + (last - first)/ 2); // 先确定查找区间的中间位置 if(isSatisify(mid, N, M)) { // 符合要求 继续二分 first = mid; } else { // 小于中间位置,向右半区间 last = mid - 1; } } if(isSatisify(first + 1, N, M)) { print(first + 1); } else { print(first); } } function isSatisify(midkey, n, m) { // 判断midkey是否符合题目要求 var res = midkey, i = 1; for(i = 1; i < n; i++) { // 表示天数,故i从1开始,因为已经存入第一个midkey,故只需要n-1天 if(midkey == 1) { res += n - i; // 后面有多少天就需要多少巧克力,因为每天至少一块巧克力 break; } else { res += parseInt((midkey+1)/2); midkey = parseInt((midkey+1)/2) } } return res <= m; }
第三题:抽数字
while(n = parseInt(readline())) { var line = readline(); line = line.split(" "); for(var i = 0; i < n; i++) { line[i] = parseInt(line[i]); } line.sort(compare); var tmp1 = 0; for(i = 0; i < n; i = i+2) { tmp1 += arr[i] } var tmp2 = 0; for(i = 1; i < n; i = i+2) { tmp2 += arr[i] } print(tmp1-tmp2) } function compare(val1, val2) { return val2-val1; }