0%

字节校招凉经20200804

字节跳动 飞书后端开发

校招 一面 提前批

  1. 自我介绍

  2. 线程与进程的区别

  3. 线程如何实现并行

  4. 死锁产生的原因

  5. 如何解开死锁

  6. 为什么会出现乱码

  7. 什么场景会出现乱码

  8. 有哪些编码规则

字符集:像Unicode 是为所有字符安排一个编号(ID), 如“知”的unicode为0x77e5
编码: 一种双射规则将这个ID转换成二进制序列方便存储和传输

  1. UTF-8是怎样的

UTF-8是这样做的:

  1. 单字节的字符,字节的第一位设为0,对于英语文本,UTF-8码只占用一个字节,和ASCII码完全相同;
  2. n个字节的字符(n>1),第一个字节的前n位设为1,第n+1位设为0,后面字节的前两位都设为10,这n个字节的其余空位填充该字符unicode码,高位用0补足。
  1. Python 如何充分利用多核cpu实现并行 (说了自己比较熟悉python,结果那2个月一直在写go)

  2. 了解过redis或memcache 吗 (无)

  3. 在浏览器输入url后拿到页面的过程中发生了什么

  4. HTTP 的请求头有哪些

  5. GET方法和POST方法的区别

  6. GET方法可以传BODY吗 (可)

  7. DNS 的功能

  8. TCP三次握手,四次挥手

  9. 为什么要三次握手和四次挥手

  10. 四次挥手后,主动关闭端处于怎样的状态

  11. 无重复字符的最长子串
    6个月前做过啊,现场没写出来,后面重新写出来的解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def lengthOfLongestSubstring(s: str) -> int:
i = 0
j = 0
hashMap = {}
max_len = 0
while j < len(s):
if hashMap.get(s[j], -1) == -1:
hashMap[s[j]] = j
else:
next_i = hashMap[s[j]] + 1
while i < next_i:
hashMap[s[i]] = -1
i += 1
hashMap[s[j]] = j
max_len = max(max_len, j-i+1)
j += 1
return max_len

虽然没有把重心放在秋招上,但还是记录一下这份无知,希望明年这时候看到这篇面筋的我能够不再对面试感到害怕。