首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python内置函数详解【翻译自pyth

生成一个类似于Pythonrepr()返回字符串。 bin(x) 将整数转换为以“0b”为前缀二进制字符串。结果是一个有效Python表达式。...若,超出异常,将抛出ValuaError异常 @classmethod 讲一个方法转换为类方法 类方法接受作为隐式第一参数,就像实例方法接受实例作为隐式一个参数。...在所有情况下,执行代码应该可以作为有效文件输入(参见“参考手册”“文件输入”部分)。...对于二进制读写访问,模式'w b'打开并将文件截断为0字节。'r b'打开文件而不截断。 如概述中所述,Python区分二进制和文本I / O。...以二进制模式打开文件(包括模式参数'b')将内容作为字节对象,而不进行任何解码。

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

学会这14种模式,你可以轻松回答任何编码面试问题

该模式如下所示: 给定两个间隔(" a"和" b"),这两个间隔可以通过六种不同方式相互关联: 了解和认识这六个情况将帮助你解决从插入间隔优化间隔合并各种问题。...如何确定何时使用此模式: 如果要求你在不占用额外内存情况下反向链接列表 链表模式就地反转问题: 撤消子列表) 反转每个K元素子列表) 7、Tree BFS 该模式基于广度优先搜索(BFS)技术来遍历...使用这种方法可以有效解决涉及逐级遍历任何问题。 Tree BFS模式工作原理是将根节点推送到队列,然后不断迭代直到队列为。对于每次迭代,我们都删除队列开头节点,然后"访问"该节点。...如果减少,则搜索结束=中间+1 这是"修改后二进制搜索"模式直观表示: 具有修改后二进制搜索模式问题: 与订单无关二进制搜索(简单) 在排序无限数组搜索 12、前K个元素 任何要求我们在给定集合中找到顶部...该模式如下所示: 将每个数组一个元素插入最小堆。 之后,从堆取出最小(顶部)元素并将其添加到合并列表。 从堆删除最小元素后,将相同列表一个元素插入

2.8K41

数据结构和算法

此外,两个子树也是二叉搜索。二叉搜索可以有效检索数据。 ? image 矩阵:矩阵是一个双维数组。它使用两个索引行和列来存储数据。 ? image 图:图包含一组节点和边。节点也称为顶点。...在这里,我列出了计算机科学中一些广泛使用算法:排序,搜索,重复编程和动态编程。 排序:排序是一种算法,由一系列指令组成,这些指令将数组作为输入,对数组执行指定操作,有时称为列表,并输出排序数组。...image 插入排序:它通过逐个移动元素对数组进行排序。每次迭代都会从输入数据删除一个元素,并将插入正在排序列表正确位置。它对于较小数据集是有效,但对于较大列表而言效率非常低。...image 搜索搜索是基于密钥查找内容。有线性搜索二进制搜索。 线性搜索:线性搜索是一种在列表查找目标值方法。它按顺序检查列表每个元素目标值,直到找到匹配项或者直到搜索完所有元素为止。...image 二进制搜索二进制搜索是一种有效算法,用于从有序项目列表查找项目。它工作原理是反复将列表可能包含该项目的部分分成两半; 直到你将可能位置缩小到一个

2K40

普林斯顿算法讲义(三)

**编写一个程序 Squeeze.java,该程序接受一个字符串作为输入,并删除相邻空格,最多保留一个空格。 **删除重复项。**给定一个字符串,创建一个新字符串,其中删除所有连续重复项。...对每个桶元素进行插入排序(或者等效,只对整个文件进行插入排序)。也就是说,对一个级别进行 MSD 基数排序,然后切换到插入排序。[尝试原地进行?] 解决方案:平均总共需要 O(N) 时间。...编写一个程序,接受一个命令行输入 N,并打印 N 个形式为(xxx)xxx-xxxx 随机电话号码。使用符号表避免多次选择相同号码。使用这个区号列表来避免打印虚假区号。使用 R 向 Trie。...向StringSET添加一个方法containsPrefix(),接受字符串 s 作为输入,并在集合存在包含 s 作为前缀字符串时返回 true。 子字符串匹配。...编写一个程序 SearchAndReplace.java,它接受两个字符串作为命令行输入,从标准输入读取数据,并用第一个字符串替换所有出现一个字符串,并将结果发送到标准输出。

12410

漫画 | 什么是散列表(哈希表)?

两数之和期望是Target,将Target依次减输入数组元素,得到值和直接寻址表比较,如果寻址表存在这个值则返回;如果不存在这个值则将输入数组元素插入寻址表,再进行输入数组一个元素。...这个外部类可以是链表对象,也可以是红黑对象,都可以存一个或者一个以上元素,也可以是链表或。散列表在某种意义上需要数组空间可以比直接寻址表要少很多。...动态空间处理其实就是改变数组长度,可以设定一个构造函数,这个构造函数可以接受一个固定容量作为参数。 M是目前散列表数组长度,N是目前在散列表插入元素个数。...扩容和缩容都会创建一个长度M列表,散列函数也会因为M而改变,原来所有元素通过新散列函数重新散列并插入列表。...动画:动态空间处理 Java 8之前,每一个槽对应一个链表; Java 8开始之后,当哈希冲突达到一定程度时,每一个位置槽从链表转成红黑。 面试官很客气,一直送我门口,我依依不舍离开这个地方。

80211

30 个重要数据结构和算法完整介绍(建议收藏保存)

特性 它总是平衡:无论何时我们在结构删除/插入一个元素,我们只需要“筛选”/“渗透”它直到它处于正确位置; 节点k > 1父节点是[k/2](其中 [x] 是 x 整数部分),其子节点是2k和...特性 作为二叉,节点 x 将2x和2x+1作为子节点,[x/2]作为父节点,其中[x]是x整数部分; 更新段整个范围一种有效方法称为“延迟传播”,它也是在 O(log n) 完成(有关操作实现...作为一种 DAC 方法,您连续将 DS 分成两半,并将搜索值与中间元素值进行比较。如果它们相等,则搜索结束。无论哪种方式,如果您值大于/小于它,搜索应该继续在右/左半部分。...队列一个元素被弹出。我们将访问它所有邻居,并将之前未访问邻居推入队列。重复该过程直到队列为。当队列为时,表示所有可达顶点都已访问完毕,算法结束。...创建最小堆并将每个节点连同它们距离值一起推入其中。然后,源成为距离为 0 根。其他节点将无限分配为距离。当堆不为时,我们提取最小距离值节点 x。

1.7K31

程序员面试:八大数据结构及相关面试题

Delete——删除指定索引位置元素 • Size——得到数组所有元素数量 面试关于数组常见问题 • 寻找数组第二小元素 • 找到数组一个不重复出现整数 • 合并两个有序数组...栈基本操作 • Push——在顶部插入一个元素 • Pop——返回并移除栈顶元素 • isEmpty——如果栈为,则返回true • Top——返回顶部元素,但并不移除它 面试关于栈常见问题...——返回队列一个元素 面试关于队列常见问题 • 使用队列表示栈 • 对队列前k个元素倒序 • 使用队列生成从1n二进制数 ?...链表就像一个节点链,其中每个节点包含着数据和指向后续节点指针。 链表还包含一个头指针,它指向链表一个元素,但当列表时,它指向null或无具体内容。.../头部插入指定元素 • Delete  - 从链接列表删除指定元素 • DeleteAtHead - 删除链接列表一个元素 • Search  - 从链表返回指定元素 • isEmpty

3.3K30

查找(二)简单清晰B、Trie具体解释

在散列表,不是直接把keyword作为数组下标,而是依据keyword计算出对应下标。 使用散列查找算法分为两步。第一步是用散列函数将被查找键转化为数组一个索引。...(假设M不是素数,我们可能无法利用键包括全部信息,这可能导致我们无法均匀散列值。) 浮点数 将键表示为二进制数,然后再使用除留余数法。...开放地址散列表中最简单方法叫做线性探測法:当碰撞发生时,我们直接检查散列表一个位置(将索引值加1),假设不同则继续查找,直到找到该键或遇到一个元素。...(开放地址类列表核心思想是:与其将内存用作链表,不如将它们作为在散列表元素。这些元素能够作为查找结束标志。)...在Trie中有两种结点: 分支结点:含有d个指针域和一个指示该结点中非指针域个数整数域。

85010

学习算法必须要了解数据结构

找到数组第二个最小元素 数组一个非重复整数 合并两个排序数组 重新排列数组正负值 堆栈 堆栈是一种只允许在表一端进行插入操作和删除操作线性表。...常见Queue面试问题 使用队列实现堆栈 反转队列前k个元素 使用队列生成从1n二进制数 链表 链表是另一个重要线性数据结构,它最初可能看起来类似于数组,但在内存分配,内部结构以及如何执行插入和删除基本操作方面有所不同...链表就像一个节点链,每个节点包含数据和指向链后续节点指针等信息。有一个头指针,它指向链表一个元素,如果列表,那么它只是指向null或什么都没有。链表用于实现文件系统,哈希表和邻接列表。...从链接列表删除给定元素 DeleteAtHead - 删除链接列表一个元素 Search - 从链表返回给定元素 isEmpty - 如果链表为,则返回true 常见链表面试问题 反转链表...计算图表边数 找到两个顶点之间最短路径 是一种分层数据结构,由顶点(节点)和连接它们边组成。

2.1K20

Python数据结构与算法笔记(4)

每个数据项都存储在相对与其他数据项位置。在Python列表,这些相对位置是单个项索引值。由于这些索引值是有序,我们可以按顺序访问它们。这个过产生了顺序查找。...二分查找 二分查找从中间项开始,而不是按照顺序查找列表。 ? Hash查找 哈希表是以一种容易找到它们方式存储项集合,哈希表每个位置,通常称为一个槽,可以容纳一个项,并且从0开始整数值命名。...并且从0开始整数值命名。 项和该项在散列表中所属槽之间映射被称为hash函数。hash函数将接收集合任何项,并在槽名范围内(0和m-1之间)返回一个整数。...归并排序 使用分而治之策略作为提高排序算法性能一种方法。归并排序是一种递归算法,不断将列表拆分为一般。如果列表或有一个项,则按定义进行排序。...如果列表有多个项,分割列表并递归调用两个半部分合并排序。一旦对这两个部分排序完成,就执行称为合并基本操作。合并是获取两个较小排序列表并将它们组合成单个排序列表过程。 ? ?

1.6K10

普林斯顿算法讲义(一)

静态方法rank()接受一个整数键和一个排序int值数组作为参数,并在数组返回键索引,否则返回-1。...Scale.java 接受图片文件名称和两个整数(宽度 w 和高度 h)作为命令行参数,并将图像缩放到 w-by-h。...Java 文档说:“虽然列表可以包含自身作为元素,但极度谨慎是明智:在这样列表上,equals 和 hashCode 方法不再被很好定义。” 歌曲播放列表。...为Stack添加一个名为size()方法,返回栈元素数量。 为Stack添加一个名为Item[] multiPop(int k)方法,从栈中弹出 k 个元素并将它们作为对象数组返回。...开发一个UF客户端 ErdosRenyi.java,接受一个整数命令行参数n���在 0 n之间生成随机整数对,调用connected()确定它们是否连接,如果没有连接则调用union()(与我们开发客户端相同

10410

每个程序员都必须知道8种数据结构

· 插入:将一个或多个元素插入数组。 · 删除:从数组删除元素 · 搜索:在数组搜索元素。...链表操作 · 搜索:通过简单线性搜索在给定链表中找到键为k一个元素,并返回指向该元素指针 · 插入:在链接列表插入一个密钥。...插入可以通过3种不同方式完成;在列表开头插入,在列表末尾插入,然后在列表中间插入。 · 删除:从给定链表删除元素x。您不能单步删除节点。...一些示例是二叉搜索,B,红黑,展开,AVL和n元。 二叉搜索 顾名思义,二进制搜索(BST)是一种二进制,其中数据以分层结构进行组织。...应用 · 二叉:用于实现表达式解析器和表达式求解器。 · 二进制搜索:用于许多不断输入和输出数据搜索应用程序。 · 堆:由JVM(Java虚拟机)用来存储Java对象。

1.4K10

数据结构基础知识: 表 栈 队列 散列 堆

二叉主要用处之一是在编译器设计领域。如二元表达式。 2.4.2 查找ADT——二叉查找 二叉一个重要应用是它们在查找使用。...3.2 散列函数 3.2.1 输入整数关键字 如果输入关键字是整数,则一般合理方法就是直接返回“Key mod TableSize”(关键字对表大小取模)结果,除非Key碰巧具有某些不理想性质。...当输入关键字是随机整数时,散列函数不仅算起来简单而且关键字分配也很均匀。 3.2.2 输入字符串关键字 通常,关键字是字符串;在这种情形下,散列函数需要仔细选择。...散列表常见用途也出现在为游戏编写程序。当程序搜索游戏不同行时,它跟踪通过计算机基于位置散列函数而看到一些位置。如果同样位置再出现,程序通常通过简单移动变换来避免昂贵重复计算。...散列表很适合这项工作,因为以字母顺序排列单词并不重要;而以它们在文件中出现顺序显示出错误拼写当然是可以接受。 4. 优先队列(堆) 4.1 为什么需要优先队列?

1.1K20

LeetCode 700题 题解答案集合 Python

搜索插入位置 35 搜索插入位置 LeetCode-Python-36. 有效数独 36 有效数独 LeetCode-Python-37....二叉搜索插入操作 701 二叉搜索插入操作 LeetCode-Python-702. 搜索长度未知有序数组 702 搜索长度未知有序数组 LeetCode-Python-703....子串能表示从 1 N 数字二进制串 1016 数字二进制串 LeetCode-Python-1017. 负二进制转换 1017 负二进制转换 LeetCode-Python-1018....删除最外层括号 1021 删除最外层括号 LeetCode-Python-1022. 从根二进制数之和 1022 从根二进制数之和 LeetCode-Python-1023....有效回旋镖 1037 有效回旋镖 LeetCode-Python-1038. 从二叉搜索更大和 1038 从二叉搜索更大和 LeetCode-Python-1041.

2.3K10

收藏 | 应对程序员面试,你必须知道8大数据结构

Size——得到数组所有元素数量 面试关于数组常见问题: 寻找数组第二小元素 找到数组一个不重复出现整数 合并两个有序数组 重新排列数组正值和负值 栈 著名撤销操作几乎遍布任意一个应用...isEmpty()——如果队列为,则返回true Top() ——返回队列一个元素 面试关于队列常见问题: 使用队列表示栈 对队列前k个元素倒序 使用队列生成从1n二进制数 链表 链表是另一个重要线性数据结构...链表就像一个节点链,其中每个节点包含着数据和指向后续节点指针。 链表还包含一个头指针,它指向链表一个元素,但当列表时,它指向null或无具体内容。...Delete  - 从链接列表删除指定元素 DeleteAtHead - 删除链接列表一个元素 Search  - 从链表返回指定元素 isEmpty - 如果链表为,则返回true 面试关于链表常见问题...(Hashing)是一个用于唯一标识对象并将每个对象存储在一些预先计算唯一索引(称为“键(key)”)过程。

1K00

Java8道数据结构面试题(附答案),你会几道?

Size——得到数组所有元素数量 面试关于数组常见问题 寻找数组第二小元素 找到数组一个不重复出现整数 合并两个有序数组 重新排列数组正值和负值 栈 著名撤销操作几乎遍布任意一个应用...—返回队列一个元素 面试关于队列常见问题 使用队列表示栈 对队列前k个元素倒序 使用队列生成从1n二进制数 链表 链表是另一个重要线性数据结构,乍一看可能有点像数组,但在内存分配...链表还包含一个头指针,它指向链表一个元素,但当列表时,它指向null或无具体内容。 链表一般用于实现文件系统、哈希表和邻接表。 这是链表内部结构展示: ?...  - 从链接列表删除指定元素 DeleteAtHead - 删除链接列表一个元素 Search  - 从链表返回指定元素 isEmpty - 如果链表为,则返回true 面试关于链表常见问题...)是一个用于唯一标识对象并将每个对象存储在一些预先计算唯一索引(称为“键(key)”)过程。

2.3K10

机器学习时代哈希算法,将如何更高效索引数据

搜索引擎核心是对互联网上可用信息庞大索引,哈希表、二叉搜索、字典、B-和布隆过滤器都是索引形式。...在接下来部分,我们将只描述哈希表中使用哈希函数,而不对加密哈希函数、校验和或任何其他类型哈希函数展开讨论。 哈希函数接受一些输入值(例如数字或文本)并返回一个整数,我们称之为哈希码或哈希值。...哈希函数返回一个整数(哈希码),我们使用这个整数(以数组大小为模)作为我们数组数值存储索引。...只要我们找到一个插槽,我们就将该值插入。相似地,我们可能无法实现常数级时间复杂度查找,并且如果在一个索引遇到多个冲突,那么我们最终将不得不搜索一系列长序列,然后才能找到要查找条目。...这并非特别令人意外结果:通过在输入数据上进行训练,学习哈希函数可以在一些空间更均匀分布数值,因为 ML 模型已经知道了数据分布!这是一种强有力、可以显著减少基于哈希索引所需存储量方式。

1K50

图解NumPy:常用函数内在机制

NumPy 数组和 Python 列表 乍一看,NumPy 数组与 Python 列表类似。它们都可作为容器,能够快速获取和设置元素,但插入和移除元素会稍慢一些。...二维情况则会更困难一些(人们正在请求这一功能)。 搜索向量元素 与 Python 列表相反,NumPy 数组没有索引方法。人们很久之前就在请求这个功能,但一直还没实现。...矩阵初始化句法与向量类似: 这里必须使用双括号,因为第二个位置参数是 dtype(可选,也接受整数)。...repeat: delete 可以删除特定行和列: 删除逆操作为插入,即 insert: append 函数就像 hstack 一样,不能自动对一维数组执行转置,因此同样,要么需要改变该向量形状...为了解决这样问题,MATLAB 方式是创建一个网格: 使用 MATLAB 创建网格示意图 使用如上提供参数 I 和 J,meshgrid 函数接受任意索引集合作为输入,mgrid 只是切分,

3.3K20

图解NumPy:常用函数内在机制

NumPy 数组和 Python 列表 乍一看,NumPy 数组与 Python 列表类似。它们都可作为容器,能够快速获取和设置元素,但插入和移除元素会稍慢一些。...二维情况则会更困难一些(人们正在请求这一功能)。 搜索向量元素 与 Python 列表相反,NumPy 数组没有索引方法。人们很久之前就在请求这个功能,但一直还没实现。...矩阵初始化句法与向量类似: 这里必须使用双括号,因为第二个位置参数是 dtype(可选,也接受整数)。...repeat: delete 可以删除特定行和列: 删除逆操作为插入,即 insert: append 函数就像 hstack 一样,不能自动对一维数组执行转置,因此同样,要么需要改变该向量形状...为了解决这样问题,MATLAB 方式是创建一个网格: 使用 MATLAB 创建网格示意图 使用如上提供参数 I 和 J,meshgrid 函数接受任意索引集合作为输入,mgrid 只是切分,indices

3.6K10
领券