岗位:测试开发,主要做台架测试
面试流程:3轮面试+hr面
一轮面试(8.15上午11点,下午3点反馈通过)
二轮面试(8.16下午2点,8月19号反馈通过)
三轮面试(8.20下午3点,8.26反馈面试已过)
四轮hr面试(8.27下午4点,9.3晚上告知不推进,原因估计有个更好的人选和相匹配的薪资)
下面的面试答案部分来源网络收集
python的内置数据类型有哪些?(数字,字符串,列表,字典,集合)
这些的数据类型哪些是可变的,哪些是不可变的?(可变:列表,字典,集合,不可变:数字,字符串和元组)
远组在什么情况下是可修改?什么情况下是不可修改?(元组中包含的元素是可变对象,例如列表,虽然不能改变元组本身,但是可以通过修改其内部的可变对象来间接改变远组的内容 如tup=(1,[2,3]) tup[1].append(4);如果里面的元素为不可变对象,则不可以修改)
用过python的那些内置库?(math,random,os,json,collections,itertools,numpy等)
入如果想看这些标准库的代码,他的路径是?(一般在python安装目录下的lib文件夹下)
python运行中时如何获取到这个库的路径?(解释器一般按照系统中列出的路径来搜索所需要的库,先查当前脚本所在路径,在看环境变量路径,最后去python安装目录下lib目录下的标准库找)
也可以用下面代码方式来了解具体的路径信息
import sys
for path in sys.path:
print(path)装饰器的返回是什么?(返回是函数,接受一个函数做为参数,并返回一个新的函数)
怎么用装饰器统计被调的函数的次数?()
python是多继承还是单继承?(python支持多继承,一个类可以有多个父类,通过多继承,获取父类的方法和属性)
A继承B,B继承C,C继承D,如何查看A的超类有哪些?(使用A.__bases__来查看它的超类,有的话返回一个元组;A.__mro__来获取属性继承顺序)
python多线程和多进程在高并发下有什么优缺点?
python进入全局解释器锁的原因?
python内置环境在什么情况下需要引入这个数据一致性?
python中多协程和多线程有什么优缺点?
了解过哪些python的编程规范?
Linux
#!/bin/bash
folder="/your/folder/path" # 将此路径替换为您的实际文件夹路径
for file in "$folder"/*
do
if [ -f "$file" ]; then # 确保是文件而不是目录
date=$(date +%Y%m%d)
new_name="${file%.*}_${date}.${file##*.}"
mv "$file" "$new_name"
fi
done给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。
数据范围: n <= 10000,1<= 结点值 <= 10000
要求:空间复杂度 O(1),时间复杂度 O(n)

下面方法一个答案,可以解决上面两个题
class Solution:
# 判断有没有环,返回相遇的地方
def EntryNodeOfLoop(self, pHead: ListNode):
slow = self.hasCycle(pHead)
# 没有环
if slow == None:
return None
# 快指针回到表头
fast = pHead
# 再次相遇即是环入口
while fast != slow:
fast = fast.next
slow = slow.next
return slow
# leetcode 144题 把相遇的地方改成返回True即可
def hasCycle(self, head):
# 先判断链表为空的情况
if head == None:
return None
# 快慢双指针
fast = head
slow = head
# 如果没环快指针会先到链表尾
while fast and fast.next:
# 快指针移动两步
fast = fast.next.next
# 慢指针移动一步
slow = slow.next
# 相遇则有环
if fast == slow:
# 返回相遇的地方
return slow
# 到末尾则没有环
return None或
class Solution:
# 判断有没有环,返回相遇的地方
def EntryNodeOfLoop(self, pHead: ListNode):
fast =pHead
slow = pHead
while True:
# fast指针走过链表末尾,说明无环,返回None
if not fast or not fast.next:
return None
slow = slow.next
fast = fast.next.next
if slow is fast:
break
# 第二次相遇,fast回到链表起点
fast = pHead
# fast和slow没相遇时候各走一步
while slow != fast:
fast = fast.next
slow = slow.next
# 再次相遇即slow所在节点
return slow自动驾驶有哪些模块呢,讲一讲?(感知,定位,决策,规划,控制,数据存储与处理等,展开细节)
硬件信号有传感器,超声波,毫米波,激光雷达,那这些是怎么传输给感知的?
硬件信号如传感器、超声波、毫米波、激光雷达等传输给感知系统的过程通常包括以下步骤:
首先,这些硬件设备会对周围环境进行监测和测量,捕捉到相应的物理信号。例如,传感器会感知温度、压力、位置等信息,激光雷达会测量距离和物体形状。
然后,这些设备将捕捉到的原始信号转换为电信号或数字信号。
接下来,通过特定的接口和通信协议,如 CAN 总线、以太网等,将这些信号传输到处理单元。
在处理单元中,会对这些信号进行预处理,包括滤波、放大、数字化等操作,以提高信号的质量和可用性。
经过预处理后,利用专门的算法对这些信号进行分析和解读,提取出有用的信息,如物体的位置、速度、形状等,从而实现对环境的感知。
激光雷达是通过怎么样的协议传输给域控制器?(UDP/IP协议或CAN接口)
就针对超声波、毫米波是不是都会用到 can FD 和以太网这两个协议?
超声波和毫米波雷达不一定都会用到 CAN FD 和以太网这两个协议。
CAN FD 协议在汽车领域应用较为广泛,一些车载毫米波雷达和超声波雷达可能会使用 CAN FD 来传输数据,但并非所有的都会采用。
以太网协议具有高带宽、低延迟等优点,但由于成本和复杂性等因素,不是所有的超声波和毫米波雷达都一定会使用以太网来传输数据。
具体使用哪种协议,取决于多种因素,如产品设计、成本考量、系统要求等。在很多情况下,一些较简单的超声波雷达可能会使用相对简单和低成本的通信方式,而一些高端、对数据传输要求较高的毫米波雷达可能会倾向于使用以太网或更先进的通信协议。
自动驾驶公司中常用的一些车辆的预控制器,你了解哪些?
项目这里面这个产品就你测试的部分,最后交付给客户是一个什么样的一个形式?硬件还是软件?
HIL如何测试?(因为没有做过,讲了一下自己了解的步骤)
SIL测试方案组成?
如果是针对自动驾驶的 SIL(Safety Integrity Level,安全完整性等级)测试方案,通常由以下几个主要部分组成:
仿真场景可以有哪些软件生成?(底层用的unity来写的模拟器)
自动驾驶仿真场景如何创建到最终生成的过程?
领导安排你做一项工作,我们不说具体是什么样的工作,你就是说按照你的工作经验理解做一件事情要分哪步骤?
新建一个 reverse 函数和主函数,主函数调用 reverse 并传入一个字符串,要求 reverse 函数将输入的字符串反转并返回。最终主函数打印反转后的字符串。例如,输入字符串 hello 反,然后 olleh。
def reverse_string(s):
return s[::-1]
string = input("请输入一个字符串: ")
reversed_string = reverse_string(string)
print("反转后的字符串: ", reversed_string)(多线程)
需求背景:提供一个程序,固定周期输出10个ID,要求10个线程,每个线程不同周期打印不同ID。比如线程1每sleep 1ms打印一次"1",线程2每sleep 2ms打印一次"2"。