自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 【零基础】手把手教你在 Mac 上装虚拟机(保姆级教程)

想装个虚拟机玩玩,结果一搜教程,满屏的专业术语直接把人劝退。今天这篇,专门写给完全零基础的朋友。我们会在 Mac(M系列芯片) 上,从零开始搭建一台运行 Kali Linux 的虚拟机。不用怕,跟着我一步步来,能复制粘贴就能装好。

2026-02-03 22:09:04 1268

原创 Playwright中page.locator和Selenium中find_element区别

2026-01-09 15:55:44 241

原创 wait_until=“domcontentloaded“ 解释

如果网页数据在 HTML 源码里:用 domcontentloaded。如果网页数据是靠 JS 后来渲染生成的:建议用 networkidle。

2026-01-08 22:07:59 282

原创 logger比print优秀之处

Print:打印出来的信息都是平等的,无论调试细节还是正常运行流程等。Logger:具有日志分级。

2026-01-06 21:02:02 248

原创 Python 中 asyncio 是什么?

不是,它是单线程,在任务空闲时切换到另一个任务,避免了多线程频繁切换上下文的开销,在处理高并发网络请求时比多线程更高效、更轻量。此处需要等待网络返回,程序可以先执行别的任务,等这边返回结果了,再继续往下执行。asyncio.run() (启动方式)await(在这里等待,但别卡死)

2026-01-06 20:28:36 525

原创 关于Python的垃圾回收

2025-12-29 23:46:03 182

原创 python简单爬取豆瓣热门电影

【代码】python简单爬取豆瓣热门电影。

2025-09-27 21:58:28 180

原创 软件测试的艺术——黑白盒测试学习笔记

就算是规模很小的程序,一般来说,要发现程序中所有的错误也是不切实际的,常理来说也是不可能的。

2025-09-15 23:03:49 269

原创 leetcode-python-2418按身高排序

输入:names = [“Mary”,“John”,“Emma”], heights = [180,165,170]输入:names = [“Alice”,“Bob”,“Bob”], heights = [155,185,150]对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob。输出:[“Mary”,“Emma”,“John”]输出:[“Bob”,“Alice”,“Bob”]

2025-09-11 22:48:49 179

原创 leetcode-python-2154将找到的值乘以 2

如果在 nums 中找到 original ,将 original 乘以 2 ,得到新 original(即,令 original = 2 * original)。给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。只要能在数组中找到新 original ,就对新 original 继续 重复 这一过程。输入:nums = [5,3,6,1,12], original = 3。输入:nums = [2,7,9], original = 4。

2025-09-11 21:07:44 227

原创 leetcode-python-1941检查是否所有字符出现次数相同

给你一个字符串 s ,如果 s 是一个 好 字符串,请你返回 true ,否则请返回 false。如果 s 中出现过的 所有 字符的出现次数 相同 ,那么我们称字符串 s 是 好 字符串。解释:s 中出现过的字符为 ‘a’,‘b’ 和 ‘c’。s 中所有字符均出现 2 次。‘a’ 出现了 3 次,‘b’ 出现了 2 次,两者出现次数不同。解释:s 中出现过的字符为 ‘a’ 和 ‘b’。输入:s = “abacbc”输入:s = “aaabb”s 只包含小写英文字母。

2025-09-09 21:22:58 187

原创 leetcode-python-1796字符串中第二大的数字

b.遍历字符串,如果当前字符为数字,则判断是否大于first,若大于,则当前数字为最大数字,若当前数字大于second小于first,则当前数字为第二大的数字,其他情况则不操作。给你一个混合字符串 s ,请你返回 s 中 第二大 的数字,如果不存在第二大的数字,请你返回 -1。a.设定两个变量first和second,表示字符串中最大的数字和第二大的数字。解释:出现在 s 中的数字包括 [1, 2, 3]。第二大的数字是 2。解释:出现在 s 中的数字只包含 [1]。

2025-09-01 22:57:31 324

原创 leetcode-python-500键盘行

输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]请注意,字符串 不区分大小写,相同字母的大小写形式都被视为在同一行。由于不区分大小写,“a” 和 “A” 都在美式键盘的第二行。输入:words = [“adsdf”,“sfd”]第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。输出:[“Alaska”,“Dad”]输入:words = [“omk”]输出:[“adsdf”,“sfd”]

2025-08-28 22:41:41 346

原创 leetcode-python-383赎金信

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。输入:ransomNote = “aa”, magazine = “aab”输入:ransomNote = “aa”, magazine = “ab”magazine 中的每个字符只能在 ransomNote 中使用一次。输入:ransomNote = “a”, magazine = “b”如果可以,返回 true;否则返回 false。

2025-08-26 23:50:04 315

原创 leetcode-python-1两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。你可以按任意顺序返回答案。

2025-08-26 22:24:32 346

原创 leetcode-python-202快乐数

然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 n 是 快乐数 就返回 true;不是,则返回 false。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。编写一个算法来判断一个数 n 是不是快乐数。

2025-08-26 20:58:41 198

原创 leetcode-python-349两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]解释:[4,9] 也是可通过的。

2025-08-21 22:20:23 304

原创 leetcode-python-242有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。输入: s = “anagram”, t = “nagaram”输入: s = “rat”, t = “car”s 和 t 仅包含小写字母。

2025-08-21 21:22:23 207

原创 leetcode-python-142环形链表 II

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。输出:返回索引为 1 的链表节点。解释:链表中没有环。

2025-08-19 22:45:43 368

原创 leetcode-python-02.07链表相交

输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3。输入:intersectVal = 2, listA = [0,9,1,2,4], listB = [3,2,4], skipA = 3, skipB = 1。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。解释:相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。

2025-08-18 21:30:03 409

原创 leetcode-sql-1795每个产品在不同商店的价格

请你重构 Products 表,查询每个产品在不同商店的价格,使得输出的格式变为(product_id, store, price)。如果这一产品在商店里没有出售,则不输出这一行。产品 1 在 store1、store3 的价格分别为 70、80。产品 0 在 store1、store2、store3 的价格分别为 95、100、105。每行存储了这一产品在不同商店 store1, store2, store3 的价格。在 SQL 中,这张表的主键是 product_id(产品Id)。

2025-08-17 22:27:09 374

原创 leetcode-python-344反转字符串

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]a.双指针思想,设定两个指针,一个指向头部,另一个指向尾部。输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]b.两个指针一起往中间走,交换元素,直至全部交换完成。输出:[“o”,“l”,“l”,“e”,“h”]

2025-08-14 21:46:16 225

原创 leetcode-python-删除链表的倒数第 N 个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2。输入:head = [1,2], n = 1。输入:head = [1], n = 1。输出:[1,2,3,5]链表中结点的数目为 sz。

2025-08-05 21:30:39 362

原创 leetcode-sql-1393股票的资本损益

Corona Masks 股票在第1天以10美元的价格买入,在第3天以1010美元的价格卖出。最后,它在第6天以1000美元的价格被买走,在第10天以10000美元的价格被卖掉。资本损益是每次(’Buy’->‘Sell’)操作资本收益或损失的和=(1010-10)+(500-1000)+(10000-1000)=1000-500+9000=9500美元。Handbags 股票在第17天以30000美元的价格买入,在第29天以7000美元的价格卖出。资本损失=7000-30000=-23000美元。

2025-08-05 20:52:48 499

原创 leetcode-sql-608树节点

表:Tree±------------±-----+| Column Name | Type |±------------±-----+| id | int || p_id | int |±------------±-----+id 是该表中具有唯一值的列。该表的每行包含树中节点的 id 及其父节点的 id 信息。给定的结构总是一个有效的树。树中的每个节点可以是以下三种类型之一:“Leaf”:节点是叶子节点。“Root”:节点是树的根节点。“lnner

2025-08-05 20:25:14 469

原创 leetcode-sql-3497分析订阅转化

订阅服务想要分析用户行为模式。平均试用时长:(45 + 30 + 60) / 3 = 45.00 分钟。平均试用时长:(55 + 25 + 50) / 3 = 43.33 分钟。平均试用时长:(70 + 60 + 80) / 3 = 70.00 分钟。体验了 3 天免费试用,时长分别为 45,30 和 60 分钟。体验了 3 天免费试用,时长分别为 55,25 和 50 分钟。体验了 3 天免费试用,时长分别为 70,60 和 80 分钟。拥有 3 天付费订阅,时长分别为 50,55 和 85 分钟。

2025-08-04 23:26:58 995

原创 leetcode-sql-3220奇数和偶数交易

编写一个解决方案来查找每天 奇数 交易金额和 偶数 交易金额的 总和。如果某天没有奇数或偶数交易,显示为 0。注意:输出表以 transaction_date 升序排序。transactions_id 列唯一标识了表中的每一行。这张表的每一行包含交易 id,金额总和和交易日期。偶数交易金额总和:150 + 200 = 350。偶数交易金额总和:300 + 50 = 350。表:transactions。偶数交易金额总和:120。奇数交易金额总和:75。奇数交易金额总和:0。奇数交易金额总和:0。

2025-08-04 22:26:11 275

原创 leetcode-sql-1158市场分析 I

编写解决方案找出每个用户的注册日期和在 2019 年作为买家的订单总数。item_id 是 Items 表的外键(reference 列)。(buyer_id,seller_id)是 User 表的外键。表中描述了购物网站的用户信息,用户可以在此网站上进行商品买卖。order_id 是此表主键(具有唯一值的列)。item_id 是此表的主键(具有唯一值的列)。user_id 是此表主键(具有唯一值的列)。以 任意顺序 返回结果表。

2025-08-03 18:08:25 611

原创 leetcode-sql-1070产品销售分析 III

返回一张有这些列的表:product_id,first_year,quantity 和 price。编写解决方案,选出每个售出过的产品 第一年 销售的 产品 id、年份、数量 和 价格。这张表的每一行都表示:编号 product_id 的产品在某一年的销售额。(sale_id, year) 是这张表的主键(具有唯一值的列的组合)。对每个 product_id,找到其在Sales表中首次出现的最早年份。product_id 是产品表的外键(reference 列)。返回该产品在该年度的 所有 销售条目。

2025-08-02 21:42:32 363

原创 leetcode-sql-1407排名靠前的旅行者

返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列。Elvis 和 Lee 旅行了 450 英里,Elvis 是排名靠前的旅行者,因为他的名字在字母表上的排序比 Lee 更小。Bob, Jonathan, Alex 和 Alice 只有一次行程,我们只按此次行程的全部距离对他们排序。user_id 是本次行程的用户的 id, 而该用户此次行程距离为 distance。id 是该表中具有唯一值的列。

2025-07-29 22:40:08 847

原创 leetcode-sql-1873计算特殊奖金

编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 ‘M’ 开头,那么他的奖金是他工资的 100% ,否则奖金为 0。因为雇员id是偶数,所以雇员id 是2和8的两个雇员得到的奖金是0。employee_id 是这个表的主键(具有唯一值的列)。雇员id为3的因为他的名字以’M’开头,所以,奖金是0。| 列名 | 类型 |此表的每一行给出了雇员id ,名字和薪水。其他的雇员得到了百分之百的奖金。返回结果格式如下面的例子所示。表: Employees。

2025-07-29 21:58:00 414

原创 leetcode-sql-1741查找每个员工花费的总时间

雇员 1 有三次进出: 有两次发生在 2020-11-28 花费的时间为 (32 - 4) + (200 - 55) = 173, 有一次发生在 2020-12-03 花费的时间为 (42 - 1) = 41。雇员 2 有两次进出: 有一次发生在 2020-11-28 花费的时间为 (33 - 3) = 30, 有一次发生在 2020-12-09 花费的时间为 (74 - 47) = 27。在 SQL 中,(emp_id, event_day, in_time) 是这个表的主键。

2025-07-22 21:19:49 459

原创 leetcode-sql-1965丢失信息的雇员

编写解决方案,找到所有 丢失信息 的雇员 id。B.使用UNION关键词去掉重复的id,将上述两个查询出来的id合并起来。返回这些雇员的 id employee_id , 从小到大排序。employee_id 是该表中具有唯一值的列。employee_id 是该表中具有唯一值的列。A.分别求出缺少雇员名称的id和缺少工资的id。每一行表示雇员的 id 和他的姓名。每一行表示雇员的 id 和他的薪水。2 号雇员的薪水信息丢失了。表: Employees。1 号雇员的姓名丢失了。表: Salaries。

2025-07-22 21:07:30 546

原创 leetcode-sql-1587银行账户概要 II

编写解决方案, 报告余额高于 10000 的所有用户的名字和余额. 账户的余额等于包含该账户的所有交易的总和。Alice 的余额为(7000 + 7000 - 3000) = 11000.如果用户转了钱, 那么金额是负的。account 是该表的主键(具有唯一值的列)。trans_id 是该表主键(具有唯一值的列)。该表的每一行包含了所有账户的交易改变情况。该表的每一行都包含银行中每个用户的帐号。C.查询出交易余额大于一万的用户即可。表中不会有两个用户具有相同的名称。所有账户的起始余额为 0。

2025-07-21 23:06:07 591

原创 leetcode-sql-627变更性别

请你编写一个解决方案来交换所有的 ‘f’ 和 ‘m’ (即,将所有 ‘f’ 变为 ‘m’ ,反之亦然),仅使用 单个 update 语句 ,且不产生中间临时表。注意,你必须仅使用一条 update 语句,且 不能 使用 select 语句。sex 这一列的值是 ENUM 类型,只能从 (‘m’, ‘f’) 中取。(1, A) 和 (3, C) 从 ‘m’ 变为 ‘f’。(2, B) 和 (4, D) 从 ‘f’ 变为 ‘m’。id 是这个表的主键(具有唯一值的列)。本表包含公司雇员的信息。

2025-07-21 22:19:24 634

原创 Python链表-双指针反转链表

python双指针反转链表

2025-06-26 22:24:54 169

原创 leetcode-sql数据库面试题冲刺(高频SQL五十题)

(requester_id, accepter_id) 是这张表的主键(具有唯一值的列的组合)。编号为 3 的人是编号为 1 ,2 和 4 的人的好友,所以他总共有 3 个好友,比其他人都多。这张表包含发送好友请求的人的 ID ,接收好友请求的人的 ID ,以及好友请求通过的日期。编写解决方案,找出拥有最多的好友的人和他拥有的好友数目。a)找出发出好友请求人的id,并计算出各个id存在数目。b)找出接收好友请求人的id,并计算出各个id存在数目。602.好友申请 II :谁有最多的好友。

2025-06-26 21:25:29 439

原创 Python移除链表元素-虚拟节点

python使用虚拟节点方法移除链表元素

2025-06-24 22:04:58 340

原创 leetcode-sql数据库面试题冲刺(高频SQL五十题)

b)使用UPPER函数将首字母修改为大写,LOWER函数将剩余字母修改为小写,再以CONCAT函数将两者合并成一个词语。a)使用LEFT和SUBSTRING函数各取用户名字的首位字母和除首位字母外的剩余字母。编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。user_id 是该表的主键(具有唯一值的列)。c)最后以user_id排序返回该表即可。返回按 user_id 排序的结果表。1667.修复表中的名字。返回结果格式示例如下。

2025-06-24 20:22:44 230

原创 leetcode-sql数据库面试题冲刺(高频SQL五十题)

a)设置两个变量,pre变量记录前一个id所代表的数字,cnt变量记录满足和前一个id所代表num相等的数量,若后续有不相等的出现,则清空计数,从1开始计算。b)查找出cnt大于等于3的数字,也就是连续出现至少三次的数字。c)会遇到都是相同数字的情况,但我们结果只有一个,如。返回的结果表中的数据可以按 任意顺序 排列。解释:1 是唯一连续出现至少三次的数字。所以,要加入DISTINCT关键词去重。在 SQL 中,id 是该表的主键。找出所有至少连续出现三次的数字。180.连续出现的数字。

2025-06-22 22:40:43 702

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除