海康威视测试笔试(2024.10.14)
- 0 or 2 and 3 and 4 or 6 and 0 or 3的值是多少?
- 运算符优先级:and 优先级 高于 or
- and: 两个值都为非零值,返回最后一个真值;有假值,返回第一个假值
- or:返回第一个真值
- 正交实验法
- 通过正交表安排实验组合。
- a={1,2,3} b={2,3,4},a-b :从集合中去除集合b中的元素。
- SQL中IFNOLL(K,0):检查K的值,如果K的值不为NULL,则返回其值;不然用0代替。
- random.uniform(a,b)的作用:随机生成一个大于等于a并且小于等于b的随机浮点数。
- Pairwise Testing两两组合测试:测试输入参数的所有可能的两两组合,可以减少测试用例数量、提高测试覆盖率、发现交互缺陷、高效测试策略。
- 指令寄存器的位数
- 共享设备:多个用户或进程请求设备,但同一时刻只有一个任务使用它们。
- a="hello”,b=b"hello” 互换:b表示字节串。
- a == b.decode('utf-8') 将字节串解码为字符串
- b == a.encode('utf-8') 将字符串转变为字节串
- 某网页用户登录,根据需求设计用户登录的测试点:1. 需要输入用户名和密码;2.用户名和密码只能输入小写英文字母和数字;3.用户名和密码最大长度不能超过16位 11. 描述如何测试手机或无线网卡设备在国内区域上网的场景(无线网卡:SIM卡)
编程题:
1.编写函数,输入2个有序列表,列表数据类型只有整数,不使用排序算法,输出合并后的有序列表。
思路:不用排序算法,只用一一对比
def merge_sorted_lists(list1, list2): merged_list = [] i, j = 0, 0 # 初始化两个指针 # 遍历两个列表,比较当前元素,按顺序添加到 merged_list while i < len(list1) and j < len(list2): if list1[i] < list2[j]: merged_list.append(list1[i]) i += 1 else: merged_list.append(list2[j]) j += 1 # 如果 list1 中还有剩余元素,添加到 merged_list while i < len(list1): merged_list.append(list1[i]) i += 1 # 如果 list2 中还有剩余元素,添加到 merged_list while j < len(list2): merged_list.append(list2[j]) j += 1 return merged_list
2.小明在爬楼梯,有N个台阶,每一次,小明可以爬1或者2个台阶,计算不同台阶的楼梯小明有多少种不同方式爬到顶部。
思路:求最大,动态规划。递归方法
- 最后到达第n个台阶的方法有从n-1阶跳1步,或者从n-2阶跳2步。得到方式数量的递推关系如下:
- 确定边界条件:
def climb_stairs(n): # 边界条件 if n <= 0: print(0) return elif n == 1: print(1) return elif n == 2: print(2) return # 创建一个数组来存储每个台阶的方法数:到达每个台阶的方法数量 ways = [0] * (n + 1) # 为什么是n+1? ways[1] = 1 # 1个台阶,第一个台阶,有1个方法 ways[2] = 2 # 2个台阶,第二个台阶,有2个方法 # 填充数组,从第3个台阶开始 for i in range(3, n + 1): ways[i] = ways[i - 1] + ways[i - 2] # 打印爬到楼梯顶部的方式数量 print(ways[n])
def climb_stairs(n): if n <= 0: print(0) return elif n == 1: print(1) return elif n == 2: print(2) return # 用两个变量来保存前两个台阶的方法数 prev1 = 1 # ways(1) prev2 = 2 # ways(2) # 从第3个台阶开始计算 for i in range(3, n + 1): current = prev1 + prev2 # 当前台阶的方法数 prev1 = prev2 # 更新 prev1 为 prev2 prev2 = current # 更新 prev2 为 current # 打印爬到楼梯顶部的方式数量 print(prev2) # 输入台阶数 n = int(input("请输入台阶数: ")) # 调用函数 climb_stairs(n)