2020快手前端实习生笔试题——工程卷

希望大佬们在评论处留下你们宝贵的算法!!!
一共四道编程题
1.与更高者距离(本题限制了语言,只记得js只能用node.js)
用一个数组height[i]存储一群旗手从前到后的身高,每个旗手之间距离1米,返回前面高于自己的人的最短距离,若无,则返回0;
例子:
输入:[175,173,174,163,182,177]
输出:[0,1,2,1,0,1]
描述:0表示没有比175高的旗手,1表示比173高的旗手的最短距离为1米,2表示~~~~~~

2.数组寻值
现有数组A,对于A[i], 若在A[0]~A[i-1]中有且只有一个元素大于A[i],则输出i,若无,则输出-1,要求时间复杂度为O(n)
例子:
输入:[22,22,33,22,12,45,44,5]
输出:[4,7]
描述:数组下标为4和7的元素满足题目要求

3.手机号码价值
手机号目前是11位,一般前三位是运营商固定号段,如:188,189,130,后8位为随机数字。现在需要实现一个程序对输入的一批手机号进行靓号筛选和价值排序以确定手机号的售卖价格。
靓号定义
1>后8位中连续3个或3个以上数为顺子号码,例如:xx0123xx xx5432xx
2>后8位中连续3个或3个以上数重复为豹子号,例如:xx6666xx xx888xxx
价值规则:
1>连续出现顺子号或豹子号位数越多价值越大,例如:xx1234xx大于xx888xxx
2>相同位数的豹子号价值大于顺子号价值,例如xx6666xx大于xx2345xx
3>一个号码中同时有顺子和豹子的,以价值大的作为该号码价值
4>相同价值的手机号,输出顺序和输入顺序一致(稳定排序)
输入描述:
一行字符串,包含若干个合法的手机号,手机号之间以逗号分隔
输出描述:
按价值降序排序之后的靓号,同样以逗号分隔,如果不存在靓号输出null
这道题可以参考这位作者的答案,但并不是很完整的解决方法https://blog.csdn.net/wq6ylg08/article/details/105038112
4.放置芯片(具体问题忘了,因为我看不懂)

发布了5 篇原创文章 · 获赞 14 · 访问量 4485

猜你喜欢

转载自blog.csdn.net/weixin_43901550/article/details/105080002