关键词:
1.时间复杂度问题
已知 AList = [1, 2, 3],BSet = 1, 2, 3 (1)从AList和BSet中查找4,最坏时间复杂度哪个大?(2)从AList和BSet中插入4,最坏时间复杂度哪个大?
答:
1、对于查找,列表和集合的最坏时间复杂度都是O(n),所以一样的。
2、列表操作插入的最坏时间复杂度为o(n), 集合为o(1),所以Alist大。set是哈希表所以操作的复杂度基本上都是o(1)。
2.用 Python 实现一个二分查找的函数
答:
n = len(arr)
left = 0
right = n - 1
while left <= right :
mid = (left + right) // 2
if arr[mid] < target:
left = mid + 1
elif arr[mid] > target:
right = mid - 1
else :
print(f"index:mid,value:arr[mid]")
return True
return False
if __name__ == '__main__':
l = [1, 3, 4, 5, 6, 7, 8]
binary_search(l, 8)
3.Python 单例模式的实现方法
答:
实现单例模式的方法有多种,之前再说元类的时候用 call 方法实现了一个单例模式,另外 Python 的模块就是一个天然的单例模式,这里我们使用 new 关键字来实现一个单例模式。
通过 new 函数实现简单的单例模式。
class Book:
def __new__(cls, title):
if not hasattr(cls, "_ins"):
cls._ins = super().__new__(cls)
print('in __new__')
return cls._ins
def __init__(self, title):
print('in __init__')
super().__init__()
self.title = title
if __name__ == '__main__':
b = Book('The Spider Book')
b2 = Book('The Flask Book')
print(id(b))
print(id(b2))
print(b.title)
print(b2.title)
4.使用 Python 实现一个斐波那契数列
答:
斐波那契数列:数列从第3项开始,每一项都等于前两项之和。
def fibonacci(num):
a, b = 0, 1
l = [a, b]
for i in range(num):
a, b = b, a + b
l.append(b)
return l
if __name__ == '__main__':
print(fibonacci(10))
5.找出列表中的重复数字
答:
思路:从头扫到尾,只要当前元素值与下标不同,就做一次判断,numbers[i] 与 numbers[numbers[i]] 相等就认为找到了重复元素,返回 true;否则就交换两者,继续循环。直到最后还没找到认为没找到重复元素。
# -*- coding:utf-8 -*-
class Solution:
def duplicate(self, numbers):
if numbers is None or len(numbers) <= 1:
return False
use_set = set()
duplication =
for index, value in enumerate(numbers):
if value not in use_set:
use_set.add(value)
else:
duplication[index] = value
return duplication
if __name__ == '__main__':
s = Solution()
d = s.duplicate([1, 2, -3, 4, 4, 95, 95, 5, 2, 2, -3, 7, 7, 5])
print(d)
6.找出列表中的单个数字
答:
def find_single(l :list):
result = 0
for v in l:
result ^= v
if result == 0:
print("没有落单元素")
else :
print("落单元素", result)
if __name__ == '__main__':
l = [1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6]
find_single(l)
7.写一个冒泡排序
答:
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - i - 1):.
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
if __name__ == '__main__':
l = [1, 2, 3, 4, 5, 55, 6, 3, 4, 5, 6]
bubble_sort(l)
print(l)
- 写一个快速排序
答:
def quick_sort(arr, first, last):
if first >= last:
return
mid_value = arr[first]
low = first
high = last
while low < high:
while low < high and arr[high] >= mid_value:
high -= 1 # 游标左移
arr[low] = arr[high]
while low < high and arr[low] < mid_value:
low += 1
arr[high] = arr[low]
arr[low] = mid_value
quick_sort(arr, first, low - 1)
quick_sort(arr, low + 1, last)
if __name__ == '__main__':
l = [1, 2, 3, 4, 5, 55, 6, 3, 4, 5, 6]
quick_sort(l, 0, len(l) - 1)
print(l)
- 写一个拓扑排序
答:
对应于该图的拓扑排序。每一个有向无环图都至少存在一种拓扑排序。
import pysnooper
from typing import Mapping
@pysnooper.snoop()
def topological_sort(graph:Mapping):
# in_degrees = 'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0
in_degrees = dict((u, 0) for u in graph)
for u in graph:
for v in graph[u]: # 根据键找出值也就是下级节点
in_degrees[v] += 1 # 对获取到的下级节点的入度加 1
# 循环结束之后的结果: 'a': 0, 'b': 1, 'c': 1, 'd': 2, 'e': 1, 'f': 4
Q = [u for u in graph if in_degrees[u] == 0] # 入度为 0 的节点
in_degrees_zero = []
while Q:
u = Q.pop() # 默认从最后一个移除
in_degrees_zero.append(u) # 存储入度为 0 的节点
for v in graph[u]:
in_degrees[v] -= 1 # 删除入度为 0 的节点,以及移除其指向
if in_degrees[v] == 0:
Q.append(v)
return in_degrees_zero
if __name__ == '__main__':
# 用字典的键值表示图的节点之间的关系,键当前节点。值是后续节点。
graph_dict =
'a': 'bf', # 表示 a 指向 b 和 f
'b': 'cdf',
'c': 'd',
'd': 'ef',
'e': 'f',
'f': ''
t = topological_sort(graph_dict)
print(t)
10.Python 实现一个二进制计算
答:
二进制加法
def binary_add(a:str, b: str):
return bin(int(a, 2) + int(b, 2))[2:]
if __name__ == '__main__':
num1 = input("输入第一个数,二进制格式:\\n")
num2 = input("输入第二个数,二进制格式:\\n")
print(binary_add(num1, num2))
最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!
这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。
敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。
自学推荐B站视频:
零基础转行软件测试:38天自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!
自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享
金三银四,你准备好面试了吗?(附30w字软件测试面试题总结)
...等)Selenium相关性能测试LordRunner相关计算机网络组成原理数据结构与算法逻辑题人力资源一、软件测试基础软件测试的步骤是什么?如何录制测试脚本?应该考虑进行如何测试的测试方法 查看详情
java八股文面试题(重点)
...汇总目录微软的100道算法面试题(一)菜鸟课程数据结构与算法菜鸟课程Python100例牛客网javayoungyangyang04/leetcode-master-200道经典题目刷题顺序力扣 查看详情
java八股文面试题(重点)
...汇总目录微软的100道算法面试题(一)菜鸟课程数据结构与算法菜鸟课程Python100例牛客网javayoungyangyang04/leetcode-master-200道经典题目刷题顺序力扣 查看详情
阿里测试员晒薪资条,看完真的扎心了...
...xff09;Selenium相关性能测试LordRunner相关计算机网络组成原理数据结构与算法逻辑题人力资源一、软件测试基础软件测试的步骤是什么?如何录制测试脚本?应该考虑进行如何测试 查看详情
java开发面试题及答案,凭借这份《数据结构与算法》核心文档
咱先来聊聊Redis像Redis的基础入门,掌握下图这几个列出来的知识点足以了。进阶的话,就得下点功夫了,事务、主从复制、哨兵、集群等等之类的搞不明白你就上不去呀。再看美团亿级流量Redis实战,Redis分布式... 查看详情
备战秋招冲击大厂java面试题系列—数据结构与算法(代码片段)
1.数据结构定义数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检... 查看详情
一位软件测试小姐妹的五万字面试宝典
...xff09;Selenium相关性能测试LordRunner相关计算机网络组成原理数据结构与算法逻辑题人力资源一、软件测试基础软件测试的步骤是什么?如何录制测试脚本?应该考虑进行如何测试的测试方法怎样估计测试工作量?测试设计的问题当测试... 查看详情
干货测试开发面试题-python(代码片段)
我这里有一份精选的测试开发面试中常问到的python面试题,由我和同行们在实际面试当中收集的,作为新年大礼送给大家。希望能对大家有帮助!目录tips:本文带有答案的,我已经标“🌟”,方便查... 查看详情
数据结构与算法系列四(单链表)(代码片段)
1.引子1.1.为什么要学习数据结构与算法?有人说,数据结构与算法,计算机网络,与操作系统都一样,脱离日常开发,除了面试这辈子可能都用不到呀!有人说,我是做业务开发的,只要熟练API,熟练框架,熟练各种中间件,写... 查看详情
python面试大全pdf(245道python面试题)
...Flask等Web框架以及爬虫、数据分析知识、数据库、算法与数据结构、架构方面的均有涉及,几乎覆盖了Python基础及进阶的方方面面,无论你是面试初级工程师还是中高级工程师这 查看详情
常见python面试题总结
前言网上有大量的基础面试题目,但是通过面试python后台开发,掌握的一些基础面试题,觉得有必要整理出来,以便日后查阅;正文一、面试基础题目;1、可迭代对象、迭代器与生成器的区别; 参考资料 查看详情
数据结构与算法面试题80道
第9题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树... 查看详情
android面试题数据结构/算法
Android面试题(一)Java基础Android面试题(二)Android基础Android面试题(三)Java虚拟机Android面试题(四)设计模式 查看详情
java面试题合集java面试题
分布式数据库面试专题系列:分布式通讯面试专题系列:分布式限流面试专题系列:常见算法面试题:开发框架面试题:面试扩充:面试经验:BAT面试常问:性能优化面试题:获取面试题集、学习资料,可以扫描下方二维码 查看详情
2022年python技术类面试题总结(面试题+答案解析)
...试中脱颖而出,找到一份高薪工作。这些面试题分为Python基础和Python高级,内容包含:基础语法、文件操作、模块与包、数据类型、元类、内存管理与垃圾回收机制以及Python函数等知识点。(一)Python基础语法(二)文件操作(... 查看详情
2022年秋招,软件测试开发最全面试攻略,吃透16个技术栈
...、selenium、性能测试、LordRunner、计算机网络、组成原理、数据结构与算法、api测试等个16专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里 查看详情
软件测试基础面试题11问(带答案)
1、编写测试用例有哪些?答:等价类、边界值、错误推测法、场景法,我个人常用的方法就是这些2、Beta测试与Alpha测试的区别?答:两者的主要区别是测试的场所不同。Alpha测试是指把用户请到开发方的场所... 查看详情
python高级算法与数据结构:“你如何压缩一部英文著作”,一道来自大厂的真实面试题(代码片段)
不久前我经历了某大厂的后台开发面试,对方给我抛过来一道开放式题目:”给你一本英文著作,你如何实现对它的有效压缩“。我当时看到问题心里感到一股拔凉,这道题非常适合那些熟悉数据压缩理论的同学&... 查看详情