- 博客(110)
- 收藏
- 关注
原创 划分字母区间
在划分字母区间时,确保每个字母在不同的片段中最多出现一次是关键。我们通过记录每个字符的最后出现位置来决定划分的边界。以字符串 为例,下面是如何划分它以获得更多片段的步骤:记录字符最后出现位置:**遍历字符串 **:初始化变量:遍历字符串:要想获得更多片段,可以调整逻辑,在发现末尾字母再一次出现时,就将当前片段分开。例如:最终,我们还是需要确保一个字母在相应的片段内能够得到完整的呈现,而所形成的片段也需要符合条件。在 Python 中,当我们使用切片 (s[anchor:j + 1]) 时,切片的定义如下
2024-12-22 23:05:46
363
原创 最长连续序列
为了解决“最长连续序列”问题,我们可以使用集合(set)来高效查找数字的存在性,并确保每个数字只计入一次。目标是找到数字的最长连续序列,并返回该序列的长度。
2024-12-22 00:06:31
726
原创 map(lambda x: x[0], sorted(count.items(), key=lambda x: (-x[1], x[0]))[:n])
从计数字典中获取所有字符串及其频率。按频率降序和字母顺序排序。截取前n个频率最高的字符串。提取这些字符串并用逗号连接成一个结果字符串。这个过程可以有效地找出出现频率最高的几个字符串,并为后续处理提供格式化的输出。
2024-09-27 17:00:33
329
原创 `pattern = r“(\d+)(CNY|JPY|HKD|EUR|GBP|fen|cents|sen|eurocents|pence)“
这个正则表达式的作用是从输入的每一行中提取出金额及其对应的货币单位,然后在后续的处理逻辑中使用这些提取出的数据。通过将匹配到的数量和单位进行相关计算,最终实现汇总所有金额的功能。在使用正则表达式的函数时,返回元组的原因与正则表达式的分组(Capture Groups)特性密切相关。
2024-09-27 14:54:41
588
原创 functools.cmp_to_key
是 Python 标准库functools中的一个函数,用于将一个比较函数(cmp函数)转换为一个键函数(keyfunction),使其可以被用作排序功能的参数。
2024-09-27 10:38:49
372
原创 input() 函数获取用户输入,并将输入的数据转换为一个列表(如 prices = [7, 1, 5, 3, 6, 4])
是一个强大的工具,用于安全地将字符串形式的 Python 字面量表达式转换为相应的 Python 对象。它在处理来自外部的数据时非常有用,可以避免使用不安全的eval()函数。
2024-09-26 13:10:30
498
原创 python检查当前单元格的内容是否只由字母和数字组成
综上所述,这一行代码是在检查当前单元格的内容是否只由字母和数字组成。如果有其他字符,比如符号或空格,就会导致条件为。中的内容是否只包含字母和数字。是一个正则表达式匹配的条件语句。,进而执行相关逻辑(可能返回。因此,整个正则表达式。
2024-09-19 13:27:35
270
原创 `re.compile(r“(<.*?>)“)` 如何有效地从给定字符串中提取出所有符合 `<...>` 格式的引用
通过这个例子,我们可以看到>)")如何有效地从给定字符串中提取出所有符合格式的引用。这个正则表达式非常有用,特别是在需要从文本中解析或提取特定格式的内容时。
2024-09-19 12:28:54
514
1
原创 双指针的用法以及示例
基本概念双指针技术使用两个指针在数据结构上进行遍历,通常用于解决与子数组、子序列、区间等相关的问题。常见类型滑动窗口:用于查找满足特定条件的子数组或子串,通常涉及到动态调整两个指针的位置。对撞指针:用于从两端向中间逼近,常用于排序数组的查找、配对等问题。滑动窗口的步骤初始化:设置两个指针(通常是left和right)和一个窗口的状态(如和、长度等)。扩展窗口:移动right指针,增加窗口的大小,更新窗口状态。收缩窗口:当窗口状态不满足条件时,移动left指针,减小窗口的大小,直到满足条件。
2024-09-15 11:52:51
366
原创 找出作弊的人【python实现】
如果当前分数差小于已知的最小分数差,则更新最小分数差并重置结果列表。如果当前分数差等于最小分数差,则将这一对添加到结果列表中。所有具有该最小分数差的员工对,确保员工ID按升序排列。:读取员工ID和分数,并按分数排序。遍历员工,计算相邻员工之间的分数差。
2024-09-13 12:22:43
224
原创 计算正方形数量
程序通过输入坐标,使用双重循环遍历所有可能的点对并基于向量旋转的方法来检测是否能形成正方形,最后返回正方形的总数。这种方法使用集合来提高查找效率,确保算法的性能。
2024-09-12 13:24:55
742
原创 流浪地球发动机
内关联:直接相邻的距离,计算为abs(i - j)。外关联:绕过环的另一侧的距离,计算为。在每次计算时,选择内关联和外关联中的最小值,以确保启动时间的最优化。这个双重循环用于计算每个发动机的最早启动时刻。当i = 2(发动机 2 启动时刻为 0)时:j = 0:内关联距离为,外关联距离为8 - 2 = 6,最短距离为 2。j = 1:内关联距离为,外关联距离为8 - 1 = 7,最短距离为 1。j = 3:内关联距离为,外关联距离为8 - 1 = 7,最短距离为 1。j = 4:内关联距离为。
2024-09-11 16:59:30
1257
原创 257. 二叉树的所有路径
总结:这个类通过深度优先搜索(DFS)算法遍历二叉树,找到所有从根到叶子节点的路径,并以字符串形式返回这些路径。这段代码定义了一个用于遍历二叉树并找到从根节点到所有叶子节点路径的类。:这段代码假设已存在一个二叉树节点的类,通常结构为。
2024-08-25 02:41:43
355
原创 层序遍历python
层序遍历函数返回整个树的每层节点,适合需要图结构的使用场景。右侧视图函数只返回每一层的最后节点,适合特定的可视化或某些搜索需求。两者代码的结构非常相似,但处理的逻辑和目标输出是不同的,具体选择哪个功能取决于你的需求。
2024-08-23 14:54:20
515
原创 如何理解迭代遍历
这段代码实现了二叉树的前序遍历(Pre-order Traversal),使用了迭代的方式。这种遍历顺序是:首先访问根节点,然后访问左子树,最后访问右子树。总体上,这段代码使用栈结构模拟递归的方式,以迭代的方式实现了二叉树的前序遍历,保证了在处理节点时能够按照根、左、右的顺序访问。当栈为空时,结束循环,返回结果列表,其中包含了按照前序遍历顺序访问的节点值。如果根节点为空,返回一个空列表,表示没有节点可遍历。将右子节点压入栈中,确保在左子节点之前被处理。如果为空,执行下一行。创建一个栈,并将根节点压入栈中。
2024-08-22 18:58:47
437
原创 如何理解递归
在二叉树的题目中,我们难免会用到递归方法,递归思想很简单,但运用起来却因为抽象而难以理解。理解递归的关键在于认识到它是一种解决问题的方法,允许函数直接或间接地调用自身。
2024-08-22 17:42:23
1271
原创 116. 填充每个节点的下一个右侧节点指针
代码来自代码随想录,具体见此链接我们从输入【1, 2, 3, 4, 5, 6, 7】构建的完整二叉树如下:执行过程我们定义一个 方法用于连接树中每个节点的 指针。以下是执行的详细步骤:初始化:第一层遍历(连接节点 的 指针):第二层遍历(连接节点 和 的 指针):第三层遍历(连接节点 、、 和 的 指针):结束:经过上述步骤后,连接后的树结构如下:每个节点的 指针连接到了同一层的下一个节点,最后一个节点的 指针指向 。 的实现通过在树的最后一层,为每个节点的 指针赋值为
2024-08-20 17:56:21
988
原创 二叉树中序迭代遍历python
这段代码通过栈实现了二叉树的中序遍历。中序遍历的顺序为:先访问左子树,再访问根节点,最后访问右子树。该算法的时间复杂度为 O(n),空间复杂度为 O(h),其中 n 是节点总数,h 是树的高度。
2024-08-20 13:00:09
492
原创 前中后序遍历python
在方法中的dfs函数中,return语句的作用是在当前递归层级中结束函数的执行。当node是None时,表示该节点为空,执行return后将不再执行dfs内接下来的代码。: 当你在遍历树时,当前节点(node)可能是一个实际的节点,也可能是None。如果它是None,就表示这个分支已经没有更多的子节点(即到达了一片空地或叶子节点的下方)。returnnodeNonereturndfs: 当当前的dfs调用结束后,程序会返回到上一个调用的地方,继续执行调用之后的代码(例如,访问右子树或返回父节点)。
2024-08-20 00:55:43
1043
原创 python实现977.有序数组的平方
这段代码实现了一个函数 sortedSquares,它接受一个整数列表 nums 作为输入,并返回该列表中每个数字的平方,且结果是升序排列的。k: 用于追踪结果数组 res 中要插入元素的位置,初始化为 len(nums) - 1(即数组的最后一个索引)。如果左侧平方小于右侧平方,则将右侧平方存入 res[k],并将 r 向左移动(减少1)。r: 用于指向列表的右侧(最大值)开始的位置,初始化为 len(nums) - 1。否则,将左侧平方存入 res[k],并将 l 向右移动(增加1)。
2024-08-15 16:39:34
319
原创 203 移除链表元素
具体思路见代码随想录这段代码实现了一个从单链表中删除特定值节点的功能,它使用了“虚拟头节点法”。下面我将逐步解释代码中的每个部分及其细节。类和方法定义:这里定义了一个 类,表示单链表的节点。每个节点包含两个属性:(节点的值)和 (指向下一个节点的引用)。 类中定义了 方法,该方法接受链表的头节点 和要删除的值 。创建虚拟头节点:创建一个(虚拟头节点),它的 指向原始链表的 。使用虚拟头节点可以简化处理头节点本身可能被删除的情况。遍历链表:这里使用一个 指针来遍历链表,从 开始。 只
2024-08-14 12:11:53
956
原创 python将对象存储在一个列表中
使用面向对象的方法来管理数据,不仅能提高代码的可读性和可维护性,还能使开发过程更高效、组织更清晰。这个方法在大规模应用程序和项目中特别重要,能够帮助开发者高效地处理复杂的系统。
2024-08-13 12:42:04
474
原创 python[:] 进行切片操作可以创建一个列表的浅拷贝
在 Python 中,使用[:]进行切片操作可以创建一个列表的浅拷贝。具体来说,的作用是将lights列表的所有元素复制到一个新的列表中。
2024-08-13 12:08:40
348
原创 华为od统一考试B卷【比赛】python实现
整体逻辑是:先读取和验证输入,然后读取评分数据,计算每位选手的总得分和分数分布,进行排序,并最终输出前 3 名选手的编号。任何时候只要发现不合规的输入,都会及时输出-1,确保程序的健壮性。这个流程确保了程序按照规范格式处理评分并输出合规的结果。通过以上步骤,我们处理了输入数据并找出了得分最高的选手,确保了每一步有合理的错误处理和有效的结果输出。这种流程确保系统能够有效地运行并给出准确的结果。
2024-08-12 16:51:22
1193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人