9.1B站笔试

试卷为算法/研发工程师(推荐搜索/AI/数据平台方向)

14个选择占比70分!!!!2个编程各15分,这选择看的我人都傻了。。。
选择题:
种类繁多,包括了散列表,树的后序遍历,栈数据结构,TCP,算法时间复杂度考察,快排/插入排序/堆排序/冒泡排序的稳定性、平均时间复杂度、最坏时间复杂度,BFS遍历图,二叉搜索,操作系统等。
编程题:
1. 序列中只包含数字和字母,判断是否有长度大于3的单调递增或者递减的数字序列,比较简单都通过了
思路:用一个字典每次把序列中的所有数字序列取出来,同时存储的有长度。再遍历字典判断即可。
2. 只包含(、)的序列,输出合法最长的前缀长度。这里我没有太懂前缀的意思,可能是必须从第一个字符开始算起吧。。。合法即为可以组成一对括号,)()(这种就不算合法。
思路:用dp+stack,stack保证合法性,遇到(入栈,遇到)出栈计算长度。当栈为空的时候dp(i)的值为length或者dp[i-2]+length,最后返回max(dp)。
但是只通过了40%的用例,只能说这个前缀这里搞得有点不太清楚。。。时间也不太够了。

总结为B站的选择题考察的基础很多,编程题不算很难大概也就是easy to medium的难度。

最后求笔试通过~~~

第一题Python:
def password(s):
    s += '*'
    n = len(s)
    dic = {}
    digit = ""
    cnt = 0
    for i in range(n):
        if s[i].isdigit():
            digit += s[i]
            cnt += 1
        elif digit != "":
            dic[digit] = cnt
            cnt = 0
            digit = ""
    for k, v in dic.items():
        if v < 3:
            continue
        else:
            flag = True
            length = len(k)
            if int(k[0]) < int(k[-1]):
                for i in range(1, length):
                    if int(k[i]) != int(k[i - 1]) + 1:
                        flag = False
                        break
                if flag:
                    return True
                else:
                    continue
            else:
                for i in range(1, length):
                    if int(k[i]) != int(k[i - 1]) - 1:
                        flag = False
                        break
                if flag:
                    return True
                else:
                    continue
    return False


t = int(input().strip())
for i in range(t):
    string = input().strip()
    res = password(string)
    if res:
        print("yes")
    else:
        print("no")


#b站笔试##笔试##bilibili笔试##B站#
全部评论
同第二题40% 我是因为超时了。。
点赞 回复 分享
发布于 2022-09-01 21:52 北京
好兄弟,能分享一下代码吗
点赞 回复 分享
发布于 2022-09-01 22:01 陕西
第二题我也是理解不了题意
点赞 回复 分享
发布于 2022-09-01 22:01 陕西

相关推荐

09-24 20:31
已编辑
西安电子科技大学 Java
9.14笔试A了1.8感觉没戏了结果9.23约9.24下午3.一面,面试难度较大(对我来说)1)上来先来了一道手撕,实现LRU缓存(力扣上那道原题)2)什么场景是高并发场景,有什么解决方案,问我哪里知道的这些?redis为什么这么快,说完又问数据结构为什么高效,String怎么实现的,SDS是什么?3)分布式事务,Seata是怎么解决的,AT模式说着说着他说我知道这个你很熟(直接打断),直接问遇到数据不一致怎么处理,8个数据有一个出错怎么知道哪些数据需要回滚(不会瞎扯,他说不对,让我再考虑,后边又瞎扯都不对直接不问了,说你没实操过)4)redis分布式锁怎么实现的,他质疑我,然后解释了一下。5)数据库隔离级别、MVCC,锁有哪些,特意问了记录锁属于哪个,B+树是什么?回表发生在什么场景下?索引存储什么地方6)跳表的原理是什么(不会),他又问了优势是什么?7)RocketMQ和Kafka优势是什么?怎么实现的,啥的,引出一大堆8)HTTP1.1劣势有哪些?HTTP2.0做了哪些改进?多路复用有哪些实现方式?9)tcp和udp协议能否使用同一个端口号(可能说错了)10)策略模式是什么?并举例说明一下11)组合模式是什么?举例说明12)还问了一些关于自己实验室项目后边问的都有点忘记了反正答的不太行说着说着他直接让我停,问我有什么想问的。我比较菜,答的太差了,以为无了就随便问了两个问题想结束这场羞辱。1)业务是做什么的(他说是什么up主激励计划,说了一些)2)问下来的流程,他说你的HR没告诉你吗?后边又告诉我了。然后我沉默,他也沉默。再就是他问我面的实习生还是应届生(直接无语),我说应届生,是不是我投错了,他看了看说你没投错,上一个面的是实习生,这个安排的应届生啊啥的。后边又问我你想不想来我们这边啊,有没有用过B站啊。总共面了一个小时。四点面完,我一直给朋友吐槽B站这个面试,结果过了一会5点收到明天下午二面,希望能对我好点
点赞 评论 收藏
分享
4 9 评论
分享
牛客网
牛客企业服务