2019年web前端大咖经典面试题汇总(附解题思路)

2019-05-06  本文已影响0人  这是这时

今天特意先整理了10道web前端大厂面试题,包含比较详细的解题思路,希望对大家的求职备战有帮助。

一、百度面试题:

写一个js函数,实现对一个数字每3位加一个逗号,如输入100000, 输出100,000(不考虑负数,小数)

image

解题思路:

本题是js实现number.toLocaleString()方法,面试题做了简化不考虑负数小数,此题主要是考数据类型及字符串操作,答案不唯一。

按现实思路解题,现实中添加千位分隔符是从后到前,每3位添加逗号,所以这里输入数据转换成字符串后,利用slice方法的输入负数参数从后取的特点,从后取三位数字保存在数组中,并把取剩后的数据递归重复取值,直到数据不足3位,把剩下一起存入数组中。在这里相信有许多想要学习前端的同学,大家可以加下web前端学习群:659479860,即可免费领取一整套系统的前端学习教程。

这时数组中按顺序保存从后到前的分割数据。实例中数组是[‘789’,’456’,’123’]。通过reverse方法倒叙输出,并通过join方法添加逗号。

二、字节跳动面试题:

给定一个字符串,找出其中无重复字符的最长子字符串长度

image image

解题思路:

这题的要点就是无重复字符的理解。首先字符串内字符位置是固定的,我们要采用顺序循环的方式解题,然后就是理解无重复字符的含义,把当前字符串分割,每个小分割内不能出现重复的字符。也就是说分割的字符串是不会互相叠加重复的,每当该段分割的下一个字符与该段分割内字符相同,当即重新开始分割字符。

所以解题时需要一个存储当前分割片段的对象,用来比较下一个字符。并取这个分割片段的长度,与每个分割片段的最大长度比较即可。

本题主要考的是题面的理解,以及字符串方法的运用,需要熟练地运用才能快速解题。

三、腾讯面试题:

实现超出整数存储范围的两个大正整数相加

image image

解题思路:

首先了解超出存储范围的大数字概念,每种数据类型可存储数据量都是存在范围的

数字类型的范围:

Number.MAX_VALUE = 1.7976931348623157e+308

Number.MIN_VALUE = 5e-324

整数类型的范围:-2-53-253

当超出这个范围,为了避免数据丢失,就要采用其他手段进行运算。在参考答案中,运用数组的方式解决这个问题。首先两个大整数要存储在数组中,要先保证位数对其,我们比较字符串长度把低位数的大整数字符串前面添加相应的0占位, 并逆排序。创建一个新的数组保存运算结果,将两个大整数按从后到前的顺序进行相加减,这里注意进位。把得到的数组反转到正常顺序即可。

四、阿里巴巴面试题:

任意二维数组的全排列组合

image image image

解题思路:

本题做法不唯一,这里采用了把多项数组逐步两两相乘的方式,第一次先取二维数组前两项组合,把组合的结果在与第三项组合以此类推。这种递归做法简单易懂,把复杂的多项问题简化成两项问题的逐渐递增。

五、京东面试题:

公司最近新研发了一种产品,共生产了n件。有m个客户想购买此产品,已知每个顾客出价。为了确保公平,公司决定要以一个固定的价格出售产品。每一个出价不低于要价的客户将会得到产品(每人只买一个),余下的将会被拒绝购买。请你找出能让公司利润最大化的售价。

image

解题思路:

本题是京东的业务演变题,首先要理清思路。本题中,固定出价,以及出价低于产品的顾客会被拒绝购买是解题核心。

条件中已知产品总个数,顾客出价。这里有个小陷阱,会出现N<M供不应求的情况,要特殊考虑。依据题目,我们首先需要对顾客出价排序,这里按升序排列。当供不应求出现时,我们截取出价高的顾客。然后把每个顾客的出价当做最终售价循环,得出最大化利润下的售价。

六、华为面试题:

计算出字符串中出现次数最多的字符是什么,出现了多少次?

image image

解题思路:

本参考答案是计算出全部字符出现次数,并留下最大的。首先利用filter()与indexOf()的方法连用字符串去重,再将得到的作为索引,利用split()分割字符串,得到字符出现次数,比较得出结果。

七、小米面试题:

"123456789876543212345678987654321..."的第n位是什么?

image

解题思路:

本题答案不唯一,这里利用数学中最小循环节的概念解题,找到最小循环节后,利用余数查找第n位数字。

八、淘宝面试题:

请编写一个 JavaScript 凼数 parseQueryString,它的用途是把 URL 参数解析为一个对象。

image

解题思路:

淘宝这道题是很常用的场景题,这里需要处理好分段次序,首先把?分离,然后按&分割最后按=分割,主要考察字符串的函数运用以及对象的创建。

九、网易面试题:

如果给定的字符串是回文,返回true,反之,返回false。

回文:如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。

image

解题思路:

去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。

十、搜狐面试题:

确保字符串的每个单词首字母都大写,其余部分小写。

image
上一篇下一篇

猜你喜欢

热点阅读