字节跳动测试开发工程师-产品研发和工程架构部职位面试被虐
- 面向对象语言的封装、继承和多态
- 浅拷贝和深拷贝
- 类和对象
- OSI七层模型、作用和每一层对应的协议
- 当python读入文件的时候发生了什么?
- 手撕代码
面向对象语言的封装、继承和多态
Encapsulation 封装 是指抽象出类的属性(数据)和方法,给用户提供一个可以调用的接口,优点是:保护数据,防止对数据的破坏。
对于封装、继承、多态可以看这一篇
继承是指在现有类(父类和基类)的基础上建立新的类(子类、派生类)。
多态是指子类继承了父类的方法,但是对父类的方法重写。
浅拷贝和深拷贝
说一下我的理解:对于赋值引用(a赋值b),a,b指向同一个对象,a变b就变。
对于浅拷贝,a,b是独立的对象,但是它们的子对象还是指向同一个对象。
对于深拷贝,a,b完全拷贝了父对象及其子对象,两者完全独立。
赋值引用、深拷贝和浅拷贝请参考这一篇
类和对象
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。
对象是类的实例。
OSI七层模型、作用和每一层对应的协议
7层模型这一篇就够啦
当python读入文件的时候发生了什么?
应该是操作系统的东西吧,这个没有整明白,希望好心人解答。
手撕代码
给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数,返回这个整数的值。数据保证该整数在int表示范围内。
示例:
//输入
//"012345BZ16"
//输出
//1193051
//说明
//12345B对应十进制为1193051
// An highlighted block
// 调用包的解
import re
class Solution:
def solve(self, s):
regex=re.compile(r"[0-9a-fA-F]+")
ans=regex.findall(s)
m=-1
for i in ans:
if(int(i,16)>m):
m=int(i,16)
return m
s = Solution()
print(s.solve('012345BZ16'))
//不调用包的解
class Solution:
def solve(self, s):
m = []
z = 0
for i in s:
if ord(i) >= ord('0') and ord(i) <= ord('9'):
z = z*16 + ord(i) - 48
elif ord(i) >= ord('A') and ord(i) <= ord('F'):
z = z*16 + ord(i) - 55
else:
z = 0
m.append(z)
return max(m)