- 博客(201)
- 收藏
- 关注
原创 【MySQL】经典练习题(保姆级详解)
按照题目和答案中相同的部分可以知道,class字段是一个字符串,score字段是一个数值型,查询字段有class,和一个聚合函数score字段的平均值,表达的意思是,查询班级信息,以及该班级的所有分数的平均值。– 用户可以拥有多辆车,关系为1:m,题目已经说明违章信息包括用户和车辆,说明违章信息表中要记录用户和车辆,一个用户可以有多次违章记录,用户与违章记录关系为1:m,一辆车也可以有多次违章记录,车辆与违章记录关系也为1:m。所以需要按照部门分组,再按照月份分组,查询分组的部门在不同月份下的总薪水。
2025-05-23 13:20:40
145
原创 hashcode()方法 (必掌握)
hash是一个函数,该函数中的实现就是一种算法,就是通过一系列的算法来得到一个hash值。这个时候,我们就需要知道另一个东西,hash表,通过hash算法得到的hash值就在这张hash表中,也就是说,hash表就是所有的hash值组成的,有很多种hash函数,也就代表着有很多种算法得到hash值。
2025-05-23 12:28:26
386
原创 MySQL经典练习题
用户可以拥有多辆车,关系为1:m,题目已经说明违章信息包括用户和车辆,说明违章信息表中要记录用户和车辆,一个用户可以有多次违章记录,用户与违章记录关系为1:m,一辆车也可以有多次违章记录,车辆与违章记录关系也为1:m。在这个状况下,D也对。– 主要考虑学生与宿舍的关系:m:1,宿舍的查房记录是根据宿舍来查的,与宿舍有关系,一个宿舍可以多次查房,宿舍与查房记录是1:m的关系。说明:名字重复,说明同一个名字有多条数据,可以先按照名字分组,分组之后再过滤行数大于1的,就表示同一个名字至少有2条记录,重复了。
2025-05-22 23:34:29
771
原创 计算机发展史
⼈类对计算的需求,驱动我们不断的发明、改善计算机。⽬前这个时代是“电⼦计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待⼤家的努⼒。计算的需求在⼈类的历史中是⼴泛存在的,发展⼤体经历了从⼀般计算⼯具到机械计算机到⽬前的电⼦计算机的发展历程。2023 Java虽然还是最主流的编程语言(不是第一,Python 和 C 偶尔会反超)(从这开始,谈到入行 程序猿,很多人都会推荐 java)聊什么呢 上面的这些东西都是可以和面试官聊的东西。美好的时光,短暂的.新的挑战又会出现。
2025-05-22 17:03:56
160
原创 【位运算】丢失的数字(easy)
如果我们把数组中的所有数,以及 [0, n] 中的所有数全部「异或」在⼀起,那么根据「异或」运算的「消消乐」规律,最终的异或结果应该就是缺失的数~解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。给定⼀个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。设数组的⼤⼩为 n ,那么缺失之前的数就是 [0, n] ,数组中是在 [0, n] 中缺失⼀个数形成的序列。输⼊:nums = [9,6,4,2,3,5,7,0,1]
2025-05-21 23:22:14
216
原创 【位运算】判断字符是否唯⼀(easy)
利⽤「位图」的思想,每⼀个「⽐特位」代表⼀个「字符,⼀个 int 类型的变量的 32 位⾜够表⽰所有的⼩写字⺟。⽐特位⾥⾯如果是 0 ,表⽰这个字符没有出现过。⽐特位⾥⾯的值是 1 ,表⽰该字符出现过。实现⼀个算法,确定⼀个字符串 s 的所有字符是否全都不同。那么我们就可以⽤⼀个「整数」来充当「哈希表」。如果你不使⽤额外的数据结构,会很加分。输⼊: s = “leetcode”输⼊: s = “abc”s[i]仅包含⼩写字⺟。
2025-05-21 20:23:53
170
原创 (排序) 【本节目标】 1. 掌握七大基于比较的排序算法基本原理及实现 2. 掌握排序算法的性能分析 3. 掌握 java 中的常用排序方法 # 1. 排序的概念及引用 1.1 排序的概念
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。
2025-05-20 23:25:33
867
原创 @[TOC](排序) 【本节目标】 1. 掌握七大基于比较的排序算法基本原理及实现 2. 掌握排序算法的性能分析 3. 掌握 java 中的常用排序方法 # 1. 排序的概念及引用 1.1 排序的概念
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。
2025-05-20 23:24:18
941
原创 【C语言】易错题 经典题型
出错原因:之前运行起来的可执行程序没有关闭 关闭即可输入3个整数,输出它们的平均值,保留3位小数。整数/整数=整数,浮点数/浮点数=浮点数A.‘\n’B.‘\060’C.‘\q’D.‘\b’答案解析:CA:‘\n’ 转义字符,代表换行B:‘\060’ 转义字符,060八进制数据,十进制为48,表示ASCII码为48的’0’C:‘\q’ 什么都不是D:‘\b’ 转义字符,表示退格。A.7B.8C.9D.10答案解析:A。
2025-05-19 21:25:59
833
原创 【数据结构】排序
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。时间复杂度:O(N*logN)空间复杂度:O(N)稳定性:稳定。
2025-05-19 11:47:43
1964
原创 数和二叉树 oj 题
对两个二叉树同时进行深度优先搜索,只有当两个二叉树中的对应节点都不为空时才会访问到该节点,因此被访问到的节点数不会超过较小的二叉树的节点数。3. 如果两棵树都不为空,先检测两棵树的root是否相同,如果相同,再检测一个的left是否为另一个的right 并且一个的right是否为另一个的left。2. 求根的左右子树高度,然后做差检测其高度差的绝对值是否超过1 如果超过则不是。若省略:仅依赖高度差判断,会漏掉子树自身不平衡的情况,导致错误结果。1. 如果是空树,直接返回,注意:空树也是平衡二叉树。
2025-05-18 18:36:30
764
原创 二叉树oj题
对两个二叉树同时进行深度优先搜索,只有当两个二叉树中的对应节点都不为空时才会访问到该节点,因此被访问到的节点数不会超过较小的二叉树的节点数。3. 如果两棵树都不为空,先检测两棵树的root是否相同,如果相同,再检测一个的left是否为另一个的right 并且一个的right是否为另一个的left。2. 求根的左右子树高度,然后做差检测其高度差的绝对值是否超过1 如果超过则不是。若省略:仅依赖高度差判断,会漏掉子树自身不平衡的情况,导致错误结果。1. 如果是空树,直接返回,注意:空树也是平衡二叉树。
2025-05-18 17:14:33
741
原创 [ 排序 ]
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。
2025-05-17 16:07:59
615
原创 (排序) 【本节目标】 1. 掌握七大基于比较的排序算法基本原理及实现 2. 掌握排序算法的性能分析 3. 掌握 java 中的常用排序方法 # 1. 排序的概念及引用 1.1 排序的概念
快速排序整体的综合性能和使用场景都是比较好的,所以才敢叫快速排序时间复杂度:O(N*logN)空间复杂度:O(logN)稳定性:不稳定。
2025-05-17 16:07:28
679
原创 @[TOC](排序) 【本节目标】 1. 掌握七大基于比较的排序算法基本原理及实现 2. 掌握排序算法的性能分析 3. 掌握 java 中的常用排序方法 # 1. 排序的概念及引用 1.1 排序的概念
1.1 排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。
2025-05-16 20:04:47
761
原创 @[TOC](排序) 【本节目标】 1. 掌握七大基于比较的排序算法基本原理及实现 2. 掌握排序算法的性能分析 3. 掌握 java 中的常用排序方法 # 1. 排序的概念及引用 1.1 排序的概念
1.1 排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数据元素全部放在内存中的排序。外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。
2025-05-16 20:03:39
618
原创 【算法】前缀和
想知道最⼤的「以 i 为结尾的和为 0 的⼦数组」,就要找到从左往右第⼀个 x1 使得 [x1, i]区间内的所有元素的和为 0。因此,我们仅需⽤⼀个哈希表,⼀边求当前位置的前缀和的余数,⼀边存下之前每⼀种前缀和的余数出现的次数。▪ 然后,我们可以⽤⼀个 for 循环枚举可能的中⼼下标,判断每⼀个位置的「前缀和」以及「后缀和」,如果⼆者相等,就返回当前下标。规定空的前缀的结束下标为 −1,由于空的前缀的元素和为 0,因此在遍历之前,首先在哈希表中存入键值对 (0,−1)。
2025-05-15 17:45:25
681
原创 【前缀和】矩阵区域和(medium)
因此修正后的坐标为: x1 = max(0, i - k), y1 = max(0, j - k);输⼊:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 1。输⼊:mat = [[1,2,3],[4,5,6],[7,8,9]], k = 2。输出:[[12,21,16],[27,45,33],[24,39,28]]输出:[[45,45,45],[45,45,45],[45,45,45]]• j - k <= c <= j + k 且。• (r, c) 在矩阵内。
2025-05-15 17:44:44
845
原创 【前缀和】连续数组(medium)
题目要求找到二进制数组中0和1数量相等的最长连续子数组的长度。通过将0记为-1,1记为1,问题转化为寻找和为0的最长子数组。使用前缀和与哈希表的方法,记录首次出现某个前缀和的位置,通过计算当前位置的前缀和与哈希表中记录的差值,找到符合条件的最大子数组长度。代码实现包括C++和Java版本,核心思路是通过遍历数组,计算前缀和并更新哈希表,最终返回最大子数组长度。
2025-05-14 23:29:02
315
原创 【前缀和】 K 整除的⼦数组(medium)
本题要求统计数组中元素之和可被整数 k 整除的连续子数组的数目。通过前缀和与哈希表的结合,可以高效解决该问题。核心思路是利用同余定理,即如果两个前缀和对 k 取模的结果相同,则它们之间的子数组和可被 k 整除。具体实现中,使用哈希表记录每种余数出现的次数,遍历数组时计算当前前缀和的余数,并在哈希表中查找相同余数的次数,累加到结果中。代码中还对负数取模进行了修正,确保余数为正。该算法的时间复杂度为 O(n),适用于大规模数据。
2025-05-14 23:25:47
646
原创 【前缀和】和为 K 的子数组(medium)
文章讨论了如何通过前缀和与哈希表的方法,高效地找到数组中所有和为 K 的连续子数组的个数。算法核心思想是利用前缀和数组,通过计算当前位置的前缀和,并在哈希表中查找是否存在等于 sum[i] - k 的前缀和,从而确定符合条件的子数组数量。文章提供了C++和Java的代码实现,并强调了在更新哈希表时,统计结果和更新哈希表的顺序不能颠倒,特别是在处理 k=0 的情况时。这种方法的时间复杂度为 O(n),适用于大规模数据处理。
2025-05-13 22:49:23
319
原创 【前缀和】除自身以外数组的乘积(medium)
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。ii. suf 表⽰: i 位置之后的所有元素,即 [i + 1, n - 1] 区间内所有元素的后缀乘积然后再处理最终结果。i. post 表⽰:i 位置之前的所有元素,即 [0, i - 1] 区间内所有元素的前缀乘积,输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [0,0,9,0,0]
2025-05-13 10:52:46
368
原创 【前缀和】寻找数组的中⼼下标(easy)
寻找数组的中心下标问题要求找到一个下标,使得该下标左侧所有元素的和等于右侧所有元素的和。如果不存在这样的下标,则返回-1。算法通过预处理前缀和和后缀和数组来实现。首先,计算每个位置的前缀和和后缀和,然后遍历数组,找到第一个满足前缀和等于后缀和的下标。如果找到,则返回该下标;否则返回-1。代码实现中,C++和Java版本均采用了相同的思路,通过循环计算前缀和和后缀和,并在最后进行判断。需要注意的是,边界情况(如数组最左端或最右端)需要特殊处理,以避免越界错误。
2025-05-12 20:40:56
292
原创 【数据结构】java对象的比较
本节主要介绍了Java中对象的比较方式,特别是在集合框架中PriorityQueue的使用场景。首先,PriorityQueue要求插入的元素必须能够进行比较,而自定义类型对象默认无法直接比较,因此需要通过实现Comparable接口或使用Comparator比较器来实现对象的比较。文章详细讲解了如何通过覆写equals方法进行对象内容的比较,并介绍了Comparable和Comparator接口的使用方法。Comparable接口允许对象自身定义比较规则,而Comparator则提供了更灵活的外部比较方式
2025-05-12 16:02:09
2142
原创 【前缀和】【模板】⼆维前缀和(medium)
本文介绍了二维前缀和算法,用于高效计算矩阵中任意子矩阵的元素和。算法通过预处理生成前缀和矩阵,使得每次查询能在O(1)时间内完成。首先,在原矩阵上添加一行一列0,避免边界条件处理。然后,通过递推公式计算前缀和矩阵。查询时,利用前缀和矩阵快速计算子矩阵和。代码部分提供了C++和Java的实现,并提醒注意数据溢出和下标处理的关键细节。该算法适用于大规模矩阵和频繁查询的场景,显著提升了计算效率。
2025-05-11 16:37:50
637
原创 【前缀和】【模板】⼀维前缀和(easy)
本文介绍了一维前缀和的概念及其在解决区间和查询问题中的应用。前缀和是一种预处理技术,通过构建一个前缀和数组,可以快速计算任意区间的元素和。具体步骤包括:首先读取数组并构建前缀和数组,然后利用前缀和数组在O(1)时间内回答每个查询。文章还提供了C++和Java的代码实现,并强调了从1开始计数以避免边界问题的重要性。通过这种方法,可以高效处理大规模数据的区间和查询。
2025-05-11 15:15:35
322
原创 【算法】二分查找
二分查找是一种高效的搜索算法,适用于有序数组。其基本思想是通过不断将搜索区间一分为二,逐步缩小范围,直到找到目标值或确定其不存在。二分查找的时间复杂度为O(logN),远优于线性查找的O(N)。在实现时,需注意指针的移动和中间值的计算,避免死循环。对于查找目标值的第一个和最后一个位置的问题,可以通过两次二分查找分别确定左右边界。关键在于理解区间的划分和指针的更新规则,而非死记模板。通过分析题意,确定搜索区间,才能灵活应用二分查找解决实际问题。
2025-05-10 22:12:50
776
原创 【二分查找】0〜n-1 中缺失的数字(easy)
题目要求在长度为n-1的递增排序数组中找出缺失的唯一数字,该数字范围在0到n-1之间。通过观察可以发现,缺失数字左边的元素与下标相等,而右边的元素与下标不等。利用这一特性,可以使用二分查找算法高效地解决问题。C++和Java的代码实现均通过二分查找来确定缺失数字的位置,时间复杂度为O(log n)。具体实现中,通过比较中间元素与下标的关系,逐步缩小查找范围,最终确定缺失的数字。
2025-05-10 09:13:49
409
原创 【MySQL】Java的JDBC编程
Java的JDBC编程1. 数据库编程的必备条件2. Java的数据库编程:JDBC3. JDBC工作原理4. JDBC使用配置最基本的一个JDBC程序编写流程JDBC查询4.1 JDBC开发案例4.2 JDBC使用步骤总结5. JDBC常用接口和类5.1 JDBC API5.2 数据库连接Connection5.3 Statement对象5.4 ResultSet对象6. 应用案例7. 内容重点总结面试问答:8. 课后作业
2025-05-06 19:08:12
1842
原创 【二分查找】搜索旋转排序数组中的最⼩值(medium)
转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]。▪ 当 mid 在 [C,D] 区间的时候,也就是 mid 位置的值严格⼩于等于 D 点的值,下次。通过图像我们可以发现, [A,B] 区间内的点都是严格⼤于 D 点的值的, C 点的值是严格⼩。输⼊: nums = [4,5,6,7,0,1,2], target = 0。
2025-05-01 14:04:52
398
原创 【二分查找】寻找峰值(medium)
• arr[i] > arr[i + 1] :此时「左侧区域」⼀定会存在⼭峰(因为最左侧是负⽆穷),那么我们可以去左侧去寻找结果;• arr[i] < arr[i + 1] :此时「右侧区域」⼀定会存在⼭峰(因为最右侧是负⽆穷),那么我们可以去右侧去寻找结果。你可以假设 nums[-1] = nums[n] = -∞。输⼊:nums = [1,2,1,3,5,6,4]:3 是峰值元素,你的函数应该返回其索引 2。:你的函数可以返回索引 1,其峰值元素为 2;输⼊:nums = [1,2,3,1]
2025-04-28 23:12:44
299
原创 【二分查找】⼭峰数组的峰顶(easy)
给你由整数组成的⼭脉数组 arr ,返回任何满⾜ arr[0] < arr[1] < …arr[i - 1]< arr[i] > arr[i + 1] > …> arr[arr.length - 1] 的下标 i。输⼊: arr = [24,69,100,99,79,78,67,36,26,19]因此,我们可以遍历数组内的每⼀个元素,找到某⼀个元素⽐两边的元素⼤即可。输⼊: arr = [0,2,1,0]输⼊: arr = [0,1,0]峰顶的特点:⽐两侧的元素都要⼤。
2025-04-27 21:40:03
230
原创 【二分查找】搜索插⼊位置(easy)
给定⼀个排序数组和⼀个⽬标值,在数组中找到⽬标值,并返回其索引。如果⽬标值不存在于数组中,返回它将会被按顺序插⼊的位置。输⼊: nums = [1,3,5,6], target = 5。输⼊: nums = [1,3,5,6], target = 2。输⼊: nums = [1,3,5,6], target = 7。请必须使⽤时间复杂度为 O(log n) 的算法。
2025-04-27 14:45:28
308
原创 【二分查找】x 的平⽅根(easy)
注意:不允许使⽤任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x * * 0.5。▪ 如果 i * i > x ,说明之前的⼀个数是结果,返回 i - 1。▪ [index + 1, x] 之间的元素,平⽅之后都是⼤于 x 的。▪ [0, index] 之间的元素,平⽅之后都是⼩于等于 x 的;由于返回类型是整数,结果只保留 整数部分 ,⼩数部分将被 舍去。给你⼀个⾮负整数 x ,计算并返回 x 的 算术平⽅根。▪ 如果 i * i == x ,直接返回 x;
2025-04-26 16:10:44
322
原创 【二分查找】在排序数组中查找元素的第⼀个和最后⼀个位置(medium)
总结二分模板:⼀定不要觉得背下模板就能解决所有⼆分问题。⼆分问题最重要的就是要分析题意,然后确定要搜索的区间,根据分析问题来写出⼆分查找算法的代码。要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解要分析题意,确定搜索区间,不要死记模板,不要看左闭右开什么乱七⼋糟的题解重要的事情说三遍。
2025-04-26 14:28:01
846
原创 MySQL的图形管理工具-MySQL Workbench的下载安装及使用【保姆级】
单击主菜单 Database -> Manage Connection,弹出Manage Sever Connections对话框,在对话框中输入连接名称,输入完成后单击Test Connection 按钮进行测试,输入root密码,点击【OK】。(2)创建名为students的表,备注:学生信息表,创建四个字段:id、name、stu_no、status,确认无误后点击"Apply"(也就是之后填写表名,列名,数据类型,约束,点击 Apply)(3)数据增加完成后,点击“Apply”,数据增加成功。
2025-04-24 17:27:43
1016
原创 【⼆分查找】⼆分查找(easy)
给定⼀个 n 个元素有序的(升序)整型数组 nums 和⼀个⽬标值 target ,写⼀个函数搜索 nums 中的 target,如果⽬标值存在返回下标,否则返回 -1。输⼊: nums = [-1,0,3,5,9,12], target = 9。输⼊: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999, 9999]之间。解释: 9 出现在 nums 中并且下标为 4。解释: 2 不存在 nums 中因此返回 -1。
2025-04-23 16:51:29
334
原创 在SQL中,FROM子句中的子查询必须指定别名,即使后续未引用该别名
SQL语法强制要求:FROM子句中的子查询必须命名(通过别名)。别名的作用:为子查询结果集命名,使解析器能正确识别其结构。即使不使用别名,仍需遵循此规则,否则查询无法执行。
2025-04-23 10:31:48
286
原创 【武汉理工大学第四届ACM校赛】copy
小s使用的剪贴板会存储最近复制的 n 条信息,每次粘贴其中的一条会使这条变为最新的,如在依次复制了1,2,3后,使用copy 2则会粘贴2, 同时剪切板内容变为2, 1, 3,小s苦于在不同的窗口之间复制粘贴, 于是他突发奇想,把所有要复制的内容都复制到了一个剪贴板中,但他突然发现由于他复制的来源太多,他现在不知道该怎么粘贴了。请输出一个粘贴的过程,使得粘贴过后的文本内容(每次粘贴后自动换行),和给定的文件文本内容一致。之后每行输出一个整数,表示要粘贴剪切板中的第几行。表示剪切板中数据的内容。
2025-04-22 20:11:36
317
原创 【算法】滑动窗口
滑动窗⼝1. ⻓度最⼩的⼦数组(medium)题⽬描述:解法⼀(暴⼒求解)(会超时):解法⼆(滑动窗⼝):2. ⽆重复字符的最⻓⼦串(medium)题⽬描述:解法⼀(暴⼒求解)(不会超时,可以通过):解法⼆(滑动窗⼝):注3. 最⼤连续 1 的个数 III(medium)题⽬描述:解法(滑动窗⼝):4. 将 x 减到 0 的最⼩操作数 (medium)题⽬描述:解法(滑动窗⼝):5. ⽔果成篮(medium)题⽬描述:解法(滑动窗⼝):6. 找到字符串中所有字⺟异位词(
2025-04-22 11:57:05
1021
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人