博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019年初考核题
阅读量:6808 次
发布时间:2019-06-26

本文共 3432 字,大约阅读时间需要 11 分钟。

初衷:

本篇是继昨天我们部门(技术部)的年初能力考核后,整理出来的文章。以此鞭策自己在今年的工作上树立清晰可见的目标,达到最终预期的效果。

题目:

1.有一个沙滩,有无穷多的沙子。现有2个空容器,分别可装为5kg和6kg的沙子。问题是如何只用这2个容器取得3kg的沙子?(10分)

1.1 第一种解法:

1.2 第二种解法:

谢谢评论中的大神提供的方法:

  1. 5装满,全部倒入6中,6差1kg可以充满;
  2. 继续装满5,倒入6中至6满,5中还剩4kg,然后将6中全部倒掉清空,把剩下倒5倒入6中,6差2kg可以充满;
  3. 装满5,倒入6中至6满,5中还剩3kg.

2.烧一根不均匀的绳从头烧到尾总共需要1个小时,如何用它来判断半个小时?现在有3条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?(10分)

2.1 第一种解法:

3.你有四个装药丸的药罐,其中有一个药罐的药丸被污染,每个正常的药丸都有一定的重量,被污染的药丸是没被污染的重量+1,只称量一次,如何判断哪个药罐的药被污染了? (10分)

给四个罐子编上号,1、2、3、4.然后1号拿一个,2号拿2个,3号拿3个,4号拿4个,称一下,若是都没被污染,应该重10个重量,若是11个重量就是1号罐,12就是2号罐,13就是3号罐,14就是4号罐(此题不太严谨,取相对重量)

4.实现一个算法,确定一个英文字符字符串的所有字符是否全都不同。

给定一个string iniString,字符串的长度小于等于100,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。(20分)

测试样例: “aeiou” 返回:True “BarackObama” 返回:False

思路:把那个字符串全部取出来放进一个数组中,然后对那个数组去重得到一个新数组,前后两个数组长度一对比,如果一样,就没重复,返回true;如果不一样,就返回false。

4.1 第一种解法:
function test(str){    var arr=[];//把字符串中所有元素    for(var i=0;i
4.2 第二种解法:

谢谢评论中的大神提供的方法:

function test(str){   return !/(\w)(?:.*\1)/.test(str) } test("aeiou");//true; test("BarackObama");//false;复制代码

5.实现一个算法,翻转一个给定的字符串。

给定一个string iniString,符串的长度小于等于100,请返回一个string,为翻转后的字符串。 (20分)

测试样例:

"This is nowcoder"          返回:"redocwon si sihT"复制代码
var str = "This is nowcoder"; console.log( str.split("").reverse().join("") );//redocwon si sihT复制代码

划重点对自己的英语水平,一直很自信,没成想最后居然把reverse写成deverse了,最有把握的一道题也凉凉了……

6.利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。

给定一个string iniString为待压缩的串(长度小于等于100),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的字符串。(30)

测试样例

"aabcccccaaa"              返回:"a2b1c5a3""welcometonowcoderrrrr"    返回:"welcometonowcoderrrrr"复制代码
6.1 第一种解法:

附上此答案原链接,谢谢OBKoro1:

//取出字符串,判断重复停止,添加到新字符串中function solution(str) {  if(typeof str !== "string"){//类型不为字符串返回空  	return '';  }  if (str.length <= 1){//直接返回源字符串  	return str;   }  let newStr = '';  let s = str.charAt(0);  let num = 1; //跳过第一个  let total = str.length;  for (let i = 1; i < total; i++) {    let nowS = str.charAt(i);    if (nowS === s) {      num = num + 1; // 增加数量      if (i + 1 === total) {        newStr += `${s}${num}`; // 遍历结束时,拼接最后的字符串      }    } else {      newStr += `${s}${num}`; // 拼接字符串      num = 1; // 重置为1      s = nowS; // 转为下一个字符s    }  }  if (newStr.length >= str.length) {// 生成的字符串长度大于等于源字符串 返回源字符串 否则返回生成的字符串    return str;  } else {    return newStr;  }};console.log(  '输出:',  solution('welcometonowcoderrrrr'),   solution('aabcccccaaa'),);//输出: welcometonowcoderrrrr a2b1c5a3复制代码
6.2 第二种解法:

谢谢评论中的大神提供的方法:

function solution(str) {    let result = str.replace(/(\w)(\1*)/g, (m, c0, c1)=> c0 + (c1.length+1))    return result.length > str.length ? str : result }    console.log(   '输出:',   solution('welcometonowcoderrrrr'),    solution('aabcccccaaa'), );//输出: welcometonowcoderrrrr a2b1c5a3 复制代码
6.3 第三种解法:

谢谢评论中的大神提供的方法:

let cStr = (str) => {    let arr = str.split("")    let res = ""    for(let i=0;i < arr.length+1;i++){        let num = 1        for (let j = i+1; j < arr.length+1; j++) {            if(arr[i-1] && arr[i] == arr[i-1]) {                break            }            if(arr[i] == arr[j]){                num ++            } else {                res = res + arr[i] + num                break            }        }    }    if(res.length >= arr.length) {        return str    } else {        return res    }};cStr('aabcccccaaa');//a2b1c5a3复制代码

结语:

韩老师点评:类似于前三道题目,在考公务员、智力竞赛这些方面都可以见到,属于逻辑思维题,平时也可以多了解了解。至于后面三道,其实平时自己做过很多遍,也许因为各种不确定因素,最终展现出了不完美的一面。希望今后的叶叶再接再厉!

转载地址:http://ygtwl.baihongyu.com/

你可能感兴趣的文章
VS2010与.NET4系列 13. ASP.NET 4 SEO 改进
查看>>
远程桌面软件
查看>>
coreseek 利用python作数据源建立索引
查看>>
linux网卡绑定
查看>>
用P3P header解决iframe跨域访问cookie
查看>>
JS日期格式化
查看>>
Windows Server 2008 R2之三十八 Hyper-V的授权管理
查看>>
Error occurred during initialization of VM Could not reserve enough space for object heap
查看>>
MYSQL 数据库创建,修改等知识整理
查看>>
OpenCASCADE Expression Interpreter by Flex & Bison
查看>>
阿里云环境迁移记录
查看>>
4.1Python文件基本操作
查看>>
nginx源码分析之线程池
查看>>
正向代理、透明代理、反向代理的理解示意图
查看>>
CSS清除浮动_清除float浮动
查看>>
Laravel User Agent 轻松识别客户端(微信)信息(2019版)
查看>>
嵌入式开发/调试辅助工具
查看>>
开发小技巧: 如何在jQuery中禁用或者启用滚动事件.scroll
查看>>
Todoist Chrome:待办事项列表及任务管理
查看>>
RxJava
查看>>