字节跳动测试开发工程师-产品研发和工程架构部职位面试被虐

字节跳动测试开发工程师-产品研发和工程架构部职位面试被虐

  • 面向对象语言的封装、继承和多态
  • 浅拷贝和深拷贝
  • 类和对象
  • 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)

你可能感兴趣的:(python)