算法
Charles_Tian
Time is well
展开
-
js实现字符串去重和数组去重(基础面试五)
题目:实现一个函数,去除输入字符串中的重复字符。题目:实现一个函数,去除输入数组中重复的元素。我想这道题是大家经常遇见的吧,是不是好像每次遇到的时候又变的不会了?那是因为不够专注,当初学习的时候知识初浅的看了看答案的思路便不再关注了,这肯定不行,要想在程序员的道路上走的更远,必须得明白解这道题的原理和做法,用了哪些你不知道的方法,甚至是还要比较哪个方法更优,明白更优的这个方法的原理出自哪里...原创 2018-04-14 15:40:18 · 12825 阅读 · 5 评论 -
携程web前端秋招笔试编程题(判断输入的IP地址是否有效)
笔试题:用js实现一个函数,判断输入的IP地址字符串是否为有效的IP地址。(该题与三七互娱笔试题编程题之一一样)示例一:ac.33.sf.456->false示例二:11.10.0.194->true其实这道题考虑仔细了,实现起来不难,因为判断一个参数是否是非数字,可以用isNaN来检测,如果知道了isNaN()方法的使用,那么这题就解决了一半。另外我们都知道IP地址的四个...原创 2018-09-07 12:15:54 · 1495 阅读 · 0 评论 -
携程web前端秋招笔试编程题(用js实现一个函数,能使输入特定的字符串转化为特定结构化数据)
笔试题:用js实现一个函数,能使输入特定的字符串转化为特定结构化数据。(该题与阿里笔试题编程题之一一样)字符串仅由小写字母和[,]构成,且字符串不包含多余的空格(阿里的提示,携程没有)示例一:‘abc’->{value:'abc'}示例二:‘[abc[bcd[def]]]’->{value:'abc',children:{value:'bcd',children:{valu...原创 2018-09-07 11:01:26 · 1506 阅读 · 0 评论 -
js实现将一位整数型数字转化为二进制数(十进制与二进制互转)
我们知道正整数转化为二进制的方法是什么,就是将该数不断除以2求余,一直到最后一个数为1,然后倒着将余数从左往右拼接;但是负整数的二进制数就不一样了,要先求其绝对值的二进制数后,再求反,最后再加一;1.当然,这里还有一个简便的方法,可以先求其绝对值之后,再减一,最后求反。代码实现:function convert(num) { var str = ''; var te...原创 2018-09-06 16:56:45 · 11699 阅读 · 1 评论 -
字节跳动19校招web前端编程题(给定一个字符串,找出其中无重复字符的最长子字符串长度)
题目:给定一个字符串,找出其中无重复字符的最长子字符串长度。示例一:'abcabcab'->3示例二:'bbbbbb'->1一般像这种处理字符串或者数组的问题,一般查看考生两个能力:第一,也是最重要的,就是处理问题的思路和逻辑;第二,对要处理的字符串和数组的一些方法要非常熟悉和运用,只有经常用的考生才会在思路对的情况下做出题目;否则,就算思路对了,要是对字符串和数组...原创 2018-09-09 17:31:18 · 2538 阅读 · 2 评论 -
冒泡排序、插入排序、选择排序、快速排序、希尔排序和归并排序的算法实现
1.冒泡排序(o(n^2))冒泡排序基本思想:两两比较相邻记录的关键字,如果反序则交换位置,直到没有反序记录为止。过程:遍历每个元素,每次与其后的元素比较,顺序错误就交换位置,重复进行直到不需要交换。这个算法名字的由来是因为越小的元素经由交换慢慢“浮”到数列的顶端。代码实现如下:function bubbleSort(arr){ var len = arr.length; v...原创 2018-07-09 16:20:29 · 1850 阅读 · 0 评论 -
js的一道关于调用累加函数(参数个数可自由控制,即函数柯里化)的面试题
题:写一个关于按照下面方式调用都能正常工作的sum方法,如果可以,写出sum方法的扩展形式。面试题示例调用代码:console.log(sum(2,3));//output 5console.log(sum(2)(3));//output 5这个我拿到手之后,第一个很好实现,难的是第二个,看到第二个的时候我心里想的是这个方法最后要return一个函数,而且是一个能参数累加的函数,这...原创 2018-06-19 20:34:08 · 3789 阅读 · 1 评论 -
js实现一个函数判断输入字符串是否为回文(基础面试题四)
题目:实现一个函数,这个函数可以用来判断输入字符串是否为回文。忽略大小写,如Helleh,王中王等。首先解这题的首要问题是理解回文这个概念,回文的定义是把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。分析:1)既然知道了回文的概念,那么我们很明显的知道这题需要遍历,也明白遍历到回文中间的那个字符的对应索引就可以了2)然后对前面一半遍历的字符与后面遍历的一半字...原创 2018-04-14 14:35:43 · 8357 阅读 · 2 评论 -
js实现返回斐波那契数列的第n个值的函数(基础面试题三)
题目:实现一个函数,输入一个数字n能返回斐波那契数列的第n个值。首先我得先知道斐波那契数列到底是个啥东西,不然这题无法下手。斐波那契数列的介绍这里不再赘述,大家自行google,这里只说明其核心知识,就是一个公式:f(n)=f(n-1)+f(n-2).分析:1)从公式上我们可以看出,斐波那契数列从第三个数开始,每个数都是前两个数的和。即1,1,2,3,5,8,13,21,34,55...等,而对应...原创 2018-04-13 09:29:31 · 4588 阅读 · 0 评论 -
js实现字符串中字符重复次数的大小排列输出(基础面试题二)
题目(较难):实现一个函数,如果传入的参数是字符串,则将该字符串按照字符出现的次数由大到小重新排列并输出;如果传入的参数不是字符串,则将参数返回。关于对字符串处理的题目有很多,是否有同学觉得自己一直学不好,异或是看懂了,过段时间后又忘记了,始终记忆不起最重要的核心逻辑思想,那么是时候动动手了,边编程边思考,为什么要用这种逻辑。分析:1)首先,题目给出我们之后,我们便会想要用for循环找出相同的字母...原创 2018-04-12 19:46:09 · 1876 阅读 · 0 评论 -
js实现一个能返回输入参数是否为质数的函数(基础面试题一)
解这道题不需要高级的前端知识,主要考察面试者的基础知识是否扎实、逻辑严谨(算是有点偏算法)。题目:实现一个函数,可以返回输入参数是否为质数。例如若输入的数为2,3,5,7,11...等则返回这些数;如果是1,4,6,8,9等数字,则输出false。分析:质数我们都知道,它的定义是只能被自己和1整除,否则不为质数。1)所以我们可以用求余的方法判断输入的参数除以自身和除以1后余数是否为...原创 2018-04-12 16:46:43 · 3284 阅读 · 0 评论 -
三七互娱秋招web前端笔试题编程题(使用原生JS实现一个英雄类Hero, 可以按照以下方式调用正确输出)
使用原生JS实现一个英雄类Hero, 可以按照以下方式调用(考察点: JavaScript流程控制)(1) Hero("37FEer")输出: Hi!This is 37FEer!(2) Hero("37FEer").kill(1).recover(30)输出: Hi!This is 37FEer! Kill 1 bug (注意:数量1个,所以bug是单数); ...原创 2018-09-07 13:47:39 · 2720 阅读 · 2 评论