自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 火柴拼正方形(回溯法实现)

4.创建一个一维数组,为正方形的四条边,如果四条边都能被放满,说明可以拼成正方形。2.如果 sum不能被4等分,一定不能拼成正方形 ,返回false。任何一根火柴棒,但你可以把它们连在一起,而且每根火柴棒必须。输入: matchsticks = [1,1,2,2,2]输入: matchsticks = [3,3,3,3,4]解释: 能拼成一个边长为2的正方形,每边两根火柴。解释: 不能用所有火柴拼成一个正方形。3.若能被4等分,对数组按升序顺序排序。如果你能使这个正方形,则返回。你将得到一个整数数组。

2023-09-17 11:21:07 206

原创 程序员面试金典16.20: T9键盘

在老式手机上,用户通过数字键盘输入,手机将提供与这些数字相匹配的单词列表。给定一个数字序列,实现一个算法来返回匹配单词的列表。1.先通过一个一维数组保存26个字母与键盘上0-9数字的映射关系(从键盘可以看出0和1不参与),所以数组起始元素从2开始。输入: num = "2", words = ["a", "b", "c", "d"]3.前提:字符串的长度需要与num的长度相同,否则一定不能匹配成功。2.遍历整数字符串,把整数字符串中的每个字符与字符串中的每个字符。输出: ["a", "b", "c"]

2023-09-13 10:04:03 397

原创 leetcode面试题:交换和(三种方法实现)

1.首先,先对题目进行理解,交换两个数,使得两个数组的和相等,那么就需要分别把两个数组的和计算出来,如果sum1和sum2的差值为偶数,才有可能可以找到能够交换的数。返回一个数组,第一个元素是第一个数组中要交换的元素,第二个元素是第二个数组中要交换的元素。输入: array1 = [4, 1, 2, 1, 1, 2], array2 = [3, 6, 3, 3]输入: array1 = [1, 2, 3], array2 = [4, 5, 6]方法三:哈希表(因为哈希表可以直接查找,所以就不需要排序了)

2023-09-12 15:35:53 381

原创 八大排序算法----归并排序(分治法实现)

将已有数列不断分离成两段长度基本相同(当已有数列长度是奇数时,则一半长一半短),直到分离成长度为 1 的 n 个数列(也就是n个数)。将数列两两合并,每次合并时进行排序,直到完成排序。:将已有序的子序列合并,得到完全有序的序列。时间复杂度:O(nlogn)空间复杂度:O(n)

2023-09-10 14:15:58 157

原创 程序员面试金典16.16 部分排序(暴力、双指针)两种解法

3.寻找最靠右的那个数(n)(满足左边存在大于它的数),和最靠左的那个数(m)(满足右边存在小于它的数),那么这两个数之间就是要排序的区间了。2.如果array[m]的左边存在比它大的数,说明它需要排序,同理,如果array[n]的右边存在比它小的数,说明它需要排序。输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]3.从前往后,找到第一个与原数组不相同的元素下标,即m。4.从后往前,找到第一个与原数组不相同的元素下标,即n。2.将排序后的数组和原数组进行比对。

2023-09-08 09:14:45 53

原创 面试题常考:LRU缓存

2.同时,题目要求get()、put()的时间复杂度为O(1),也就是能够快速插入、删除元素,来确保时间复杂度低,最佳的数据结构应该是链表,这里用。// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 缓存是 {1=1, 2=2}所以,我们需要添加一个双向链表的结构体和无序map来对数据实现LRU缓存。// 返回 -1 (未找到)// 返回 -1 (未找到)lRUCache.put(1, 1);// 缓存是 {1=1}

2023-09-07 15:55:58 514

原创 八大排序算法----堆排序

1.构建大顶堆(每个结点的值都大于或等于其左右孩子结点的值)2.排序:每次堆顶的元素取出来(整个堆中值最大),与最后一个节点做交换,使末尾元素最大3.交换完之后,需要重新维护堆中剩下的其他节点,保证每次的堆顶都是最大值,重复2,3,直到序列完全有序

2023-09-06 16:51:04 576

原创 稳定的排序算法:直接插入排序和冒泡排序 (c++实现)

插入排序:就是把数组分为左右两个序列,保持左边序列中所有元素是有序的,(当左边序列只有第一个元素时,本身就是有序的,)每次往后移一个,将这个元素保存起来,跟左边的元素进行比较,直到找到第一个小于它的元素后停下,此时的位置是这个元素在当前左边序列中的正确位置,将它插入到左边有序序列的正确位置上去。重复此操作,直到遍历至最后一个元素。它重复地遍历数组,一次比较两个元素,如果它们的顺序错误就把它们交换过来。使得每遍历完一次数组,当前序列中最大的元素就会被移到最右边,且有序。重复遍历数组,直至全部有序。

2023-09-05 19:43:15 405

原创 快速排序(递归和非递归两种方法实现)

1.首先找一个基准点(一般选取最左边第一个)2.先从后往前遍历,找到第一个小于基准值的元素;3.再从前往后遍历,找到第一个大于基准值的元素;4.将这两个元素两两交换5.当i与j相遇时,说明找到了排序后当前这个基准值的正确位置,将基准点进行归位;6.开始新的一轮,以上一轮的基准点为中轴,分成左边区域和右边区域,分别选取一个新的基准点对新的基准点进行归位即可。

2023-09-04 14:17:39 473

原创 leetcode原题: 跳水板

1.首先考虑两种特殊情况: k=0,使用0块木板,直接返回一个空数组即可 shorter=longer,两个板长度相同,返回任意一个板的长度*k2.其余正常情况,我们可以看的出会有k+1种情况,使用0块短板--使用k块短板,所以我们这里设置循环初始值为0,循环结束条件是

2023-09-03 08:54:52 227

原创 leetcode原题: 最大数

首位数值不同,很好解决,数值大的放在前面即可,但是首位数值相同的话,我们不能直接确定大小。最后返回是,如果字符串首字符为'0',那么我们返回字符串“0”,否则按正常情况处理。所以我们需要将所有情况列出来,进行比较,才能知道哪种情况为最大值。首先,如果要组成最大的数,就要将数字首位数值最大的数排在前面,例如[4,45] 可以组成445,454,454更大。但是[3,32] 组成332,323 ,332更大。输入:nums = [3,30,34,5,9]输出:"9534330"

2023-09-02 11:37:05 438

原创 关于岛屿的三道leetcode原题:岛屿周长、岛屿数量、统计子岛屿

输入:grid1 = [[1,1,1,0,0],[0,1,1,1,1],[0,0,0,0,0],[1,0,0,0,0],[1,1,0,1,1]], grid2 = [[1,1,1,0,0],[0,0,1,1,1],[0,1,0,0,0],[1,0,1,1,0],[0,1,0,1,0]]整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。遍历矩阵,遍历到土地,就land++,如果它的右边或下边也是土地,则border++,便遍历结束后代入公式即可。

2023-09-02 11:27:41 652

原创 leetcode原题: 生存人数

如果一个人在某一年的任意时期处于生存状态,那么他应该被纳入那一年的统计中。例如,生于 1908 年、死于 1909 年的人应当被列入 1908 年和 1909 年的计数。年份生存人数也就相当于是对每个年龄段的两头进行记录,找每个区间的重叠部分,返回重叠的最大值。如果有多个年份生存人数相同且均为最大值,输出其中最小的年份。这里我们用到差分数组,出生年份的下标+1,死亡年份的下标-1。给定 N 个人的出生年份和死亡年份,第。,实现一个方法以计算生存人数最多的年份。

2023-09-01 15:33:26 337

原创 leetcode原题: 最小值、最大数字

4.直到循环结束,在这过程中,如果遇到两个数值相等,那么说明已经找到最小差值0了,不用继续找下去了。输入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8}因为题目要求不允许使用比较运算符以及if-else判断语句,所以我们不能直接进行比大小。,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。3.将两个指针所指的数值进行比较,将数值较小的向后移,不断缩小差值。如果是负数,右移32位,结果为-1。输出:3,即数值对(11, 8),分别用来遍历两个数组。

2023-08-30 16:24:29 245

原创 井字游戏 (求和计数法)

如果游戏存在获胜者,就返回该游戏的获胜者使用的字符("X"或"O");如果游戏以平局结束,则返回 "Draw";如果仍会有行动(游戏未结束),则返回 "Pending"。设计一个算法,判断玩家是否赢了井字游戏。输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" "代表一个空位。3.否则,根据在遍历时判断的是否存在空位来判断,返回"Draw"或者"Pending"2.如果当前行满足游戏胜利的规则,则说明当前那一方胜利。1.对每行、每列、左对角线、右对角线上的字符进行求和。

2023-08-28 00:25:44 178

原创 数字流的秩、单词频率(哈希实现)

每隔一段时间,你希望能找出数字 x 的秩(小于或等于 x 的值的个数)。//返回2,"have"出现2次。//返回0,"you"没有出现过。2.遍历map,找到小于或等于x的key值,将其value值进行累加,得到最终答案。设计一个方法,找出任意指定单词在一本书中的出现频率。1.创建哈希表,将数字x的出现的次数保存起来。方法,返回小于或等于 x 的值的个数。1.创建哈希表,将单词出现的次数保存起来。

2023-08-25 17:05:08 680

原创 leetcode原题: 峰与谷

在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。1.当i%2==0时,说明此时是峰,如果当前元素小于前一个元素,那么将这两个数组进行交换,大于符合要求,不用交换。2.当i%2==1时,说明此时是谷,如果当前元素大于前一个元素,那么将这两个数组进行交换,小于符合要求,不用交换。输入: [5, 3, 1, 2, 3]输出: [5, 1, 3, 2, 3]

2023-08-24 01:50:03 332

原创 稀疏矩阵搜索(两种方法解决:1.暴力+哈希 2.二分法)

输入:words = ["at", "", "", "", "ball", "", "", "car", "", "","dad", "", ""], s = "ball"输入: words = ["at", "", "", "", "ball", "", "", "car", "", "","dad", "", ""], s = "ta"有个排好序的字符串数组,其中散布着一些空字符串,编写一种方法,找出给定字符串的位置。否则说明不存在该字符串,返回-1。说明: 不存在返回-1。

2023-08-24 01:39:18 744

原创 leetcode原题:变位词组(哈希)

本题是需要将相同的变位词放在一维数组中,但不能将改变变位词中的字母排列,所以我们在这里采用哈希,在哈希表中存放相同的变位词组。编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。输入: ["eat", "tea", "tan", "ate", "nat", "bat"],

2023-08-23 14:47:10 309

原创 leetcode原题:搜索旋转数组

2.不确定左区间是升序的,(arr[left]

2023-08-23 14:36:29 350

原创 leetcode原题: 堆箱子(动态规划实现)

给你一堆n个箱子,箱子宽 wi、深 di、高 hi。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。箱堆的高度为每个箱子高度的总和。因为尽管我们需要计算的是最大高度,但最终堆箱子需要宽、深、高都小于下面的箱子,所以直接按宽来排序)输入:box = [[1, 1, 1], [2, 3, 4], [2, 6, 7], [3, 4, 5]]输入:box = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]2.用dp[i]记录以第i个箱子结尾的箱堆的最大高度。

2023-08-22 22:46:35 769

原创 leetcode原题:颜色填充(经典的递归问题)

待填充的图像用二维数组 image 表示,元素为初始颜色值。初始坐标点的行坐标为 sr 列坐标为 sc。这道题还可以用广度优先遍历来实现,借助队列,在队列中通过pair对保存坐标的x,y。注意,右下角的像素没有更改为 2,因为它不属于初始坐标点的周围区域。初始坐标点位于图像的正中间,坐标 (sr,sc)=(1,1)。初始坐标点周围区域上所有符合条件的像素点的颜色都被更改成 2。请用新颜色填充初始坐标点的周围区域,并返回填充后的图像。3.分别找四个方向的坐标,将符合条件的进行颜色更新。

2023-08-21 17:37:26 530

原创 二叉搜索树序列(利用队列实现)

首先,父节点的优先级一定是最高的,其左右节点的优先级是相同的,当左节点被访问后,它的左右子节点和上一层的右节点优先访问级别也是相同的。既然是全排列,就肯定是要用到递归算法,在递归的过程中因为需要回溯,所以这里的队列我们采用双向队列,便于尾删。解释: 数组 [2,1,3]、[2,3,1] 均可以通过从左向右遍历元素插入树中形成以下二叉搜索树。所以也可以看作是对同一优先级的所有节点的全排列,这里我们利用队列来保存需要全排列的所有节点。输出: [[2,1,3],[2,3,1]],输出所有可能生成此树的数组。

2023-08-20 23:20:09 114

原创 汉诺塔问题 (递归实现)

一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。(3) 盘子只能叠在比它大的盘子上。2.当n=2时,先将第一个盘子移动到B上,再将第二个盘子移动到C上,最后将B上的盘子移动到C上。输入:A = [2, 1, 0], B = [], C = []最后将B上的n-1个盘子利用A移动到C上。1.当n=1时,直接将盘子从A移动到C。先将A上的n-1个盘子利用C移动到B上。输出:C = [2, 1, 0]再将第n个盘子移动到C上。柱子A上的盘子总数为n。

2023-08-20 23:04:43 172

原创 leetcode原题:绘制直线(位运算)

题目中说明每32个像素点放在一个int中,w为每行的像素点总数,那么每行就有w/32个int,length为数组中一共有多少个int。解释:在第 0 行的第 30 位到第 31 位画一条直线,屏幕二进制形式表示为 [00000000000000000000000000000011],因此返回 [3]输入:length = 1, w = 32, x1 = 30, x2 = 31, y = 0。y表示第几行,每行有row个int,所以y*row 先确定x1所在下标。已知一个由像素点组成的单色屏幕,每行均有。

2023-08-19 12:06:01 174

原创 迷路的机器人(递归回溯+动态规划两个方法实现)

机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍物)。0行0列(左上角) -> 0行1列 -> 0行2列 -> 1行2列 -> 2行2列(右下角)3.那么就从终点往回走,找到可以到达起点的路径,每走一步都要将坐标添加到res数组中。需要注意的是,要添加一个访问数组,标记该坐标是否已经被访问过。输出: [[0,0],[0,1],[0,2],[1,2],[2,2]]1.先找到可行的路径,不可达的坐标点 dp=0。2.如果终点的dp不为0,说明存在可达的路径。输入中标粗的位置即为输出表示的路径,即。

2023-08-19 11:54:46 1106

原创 位运算相关题目:下一个数、整数转换、配对交换

编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小)。3.较小值:从左往右找到第一个10,将其转换成01, 再将右侧剩余的1全都移动到最高位。2.较大值:从左往右找到第一个01,将其转换成10,再将右侧剩余的1全都移动到最低位。输入:A = 29 (或者0b11101), B = 15(或者0b01111)输入:A = 1,B = 2。

2023-08-17 10:09:57 210 1

原创 leetcode原题 后继者:找出二叉搜索树中指定节点的“下一个”节点

我们可以中序遍历二叉树,在找到p节点后,做一个标记,当遍历到它的后继时,发现标记为真,那么当前节点就是节点p的下一个节点,返回即可。因为是中序遍历,那么p的下一个节点,一定是中序序列中,第一个比p节点大的节点,所以找到第一个比p大的节点即可。设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。输入: root = [2,1,3], p = 1。如果指定节点没有对应的“下一个”节点,则返回。

2023-08-16 15:36:57 542

原创 leetcode原题:检查子树

如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为 T1 的子树,也就是说,从节点 n 处把树砍断,得到的树与 T2 完全相同。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。所以必须要找到叶子节点,这期间的所有节点都相同,才是子树,否则不是子树。输入:t1 = [1, 2, 3,4,5], t2 = [2]输入:t1 = [1, 2, 3], t2 = [2]从节点 n 处把树砍断,得到的树与 T2 完全相同”,1.先递归地找到T1树中与T2的根节点相同的节点。

2023-08-15 14:38:04 334

原创 二进制转字符串(小数)

给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。每次取小数部分*2,二进制取乘积的整数部分,直到小数部分变为0。所以0.625的二进制结果为0.101。提示:0.1无法被二进制准确表示。输出:"0.101"输出:"ERROR"

2023-08-15 14:27:18 127

原创 翻转位数:给定一个32位整数 `num`,你可以将一个数位从0变为1。

bitset相当于一个数组,数组中存放的是num这个整数的每一位上的0/1情况,但使用时必须给定大小,如果一开始不确定大小,只能使用vector。比如,这道题我们已知是32位整数,所以我们直接用整数进行数组的初始化,给定数组的大小为32。bitset bit(num),这样直接就可以获得num的每一位,可以通过下标进行查找1或0。只有flag=true,res=len1+len2+1,否则,只能是len2+1(一段长度+翻转一位)请编写一个程序,找出你能够获得的最长的一串1的长度。

2023-08-14 01:12:49 220

原创 leetcode原题:节点间通路

输入:n = 3, graph = [[0, 1], [0, 2], [1, 2], [1, 2]], start = 0, target = 2。,先在map中是否可以直接到达target,若没有,则将该节点可以到达的其他节点入队,继续找这些节点能到达的节点是否可以到达target。,讲每个节点的可达节点保存在它自己的数组中,例如示例:map[0]={1,2}4.在找的过程中,只要找到了target,就说明存在路径,返回true。,记录节点是否已经被访问过,防止一个节点多次被访问,出现死循环。

2023-08-13 23:52:10 230

原创 leetcode面试题:动物收容所(考查对队列的理解和运用)

1.执行enqueue(0,0),收容编号为0的猫咪,无返回值2.执行enqueue(1,0),收容编号为1的猫咪,无返回值3.执行dequeueCat(),现在要收养一只猫咪,只能收养最老的,所以就是编号为0的猫咪,返回值为[0,0]4.执行dequeueDog(),现在要收养一只小狗,但是目前收容所没有狗狗,所以返回值为[-1,-1]5.执行dequeueAny(),随机收养,不指定猫狗,选择目前收容所中最老的动物即可,此时收容所只剩一只编号为1的猫咪,所以返回[1,0]

2023-08-13 01:23:53 254

原创 栈排序(使使最小元素位于栈顶)

创建一个辅助栈s2,当要将val入栈s1时,判断s1的元素是否小于val,只要小于,就将元素放入s2栈中,暂时保存起来,直到找到比val大的就停止,然后将val入栈s1,再将刚刚在s2中保存的所有元素依次入栈s1,这样就能始终保持s1中的元素自底向上是按从大到小的顺序存放的。1.通过比较,先将1,2,3,依次出栈并存放到s2中,此时 s2: 1,2,3 s1:5。3.再将元素归还给s1。此时:s1:5,4,3,2,1 s2:null。当前s1栈的元素:5,3,2,1 ,val=4。

2023-08-12 16:11:58 212

原创 leetcode原题:堆盘子 (考查对栈的理解和使用)

4.执行popAt (1),意思是从下标为1的盘子堆中拿走最上面的一个盘子,这里盘子堆的下标是从0开始的,所以也就是从第二堆盘子拿,所以返回的是2。5.执行pop(),意思是从最后一堆盘子中拿走最上面的一个盘子,这里因为前一个已经将第二堆盘子清空了,所以应该从第一堆盘子中拿,所以返回的是1。6.执行pop(),意思是从最后一堆盘子中拿走最上面的一个盘子,这里因为已经没有盘子堆了,所以无法拿盘子,返回-1。3.在拿走盘子时,如果拿走之后,当前这堆盘子为空了,要将当前这个盘子堆的栈清除掉。

2023-08-11 16:02:04 239

原创 三合一 (如何只用一个数组来实现三个栈)

4.执行pop(0)函数,意思是将下标为0的栈顶元素出栈,由于栈的容量为1,此时栈的栈顶元素为1,所以返回1。5.执行pop(0)函数,意思是将下标为0的栈顶元素出栈,前面已经将栈顶元素出栈了,此时栈为空,所以返回-1。2.执行push(0,1)函数,意思是向下标为0的栈中将1入栈,无返回值,所以输出为null。3.执行push(0,2)函数,意思是向下标为0的栈中将2入栈,无返回值,所以输出为null。7.执行isEmpty(0)函数,意思是判断下标为0的栈是否为空,此时为空,返回true。

2023-08-10 14:24:56 121

原创 leetcode原题 一次编辑(判定字符串是否只需要一次(或者零次)编辑)

字符串有三种编辑操作:插入一个英文字符、删除一个英文字符或者替换一个英文字符。给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。,那么只需要判断哪个字符串更长,再判断将短字符串插入一个字符串后,是否符合条件。,那么一次编辑是无法使两个字符串相等的,直接返回false即可。,那么只能进行替换,不能插入。

2023-08-09 15:25:54 232

原创 链表求和(反向存放、正向存放)

输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295。输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即716 + 592。由于此时节点是正向存放,我们需要先找到个位数的数字,那么就要借助栈,(先进后出)来实现。1.由于是反向存放的,那么链表首位就是个位,所以我们可以直接遍历链表获取数字。首先将链表1和链表2分别入栈,栈顶元素即低位到高位的顺序。输出:2 -> 1 -> 9,即912。输出:1->3->0->8,即1308。的,也就是个位排在链表首部。

2023-08-08 16:38:15 112

原创 链表相关操作:移除重复节点、删除中间节点

1.创建一个set表,将第一次出现的节点值保存起来2.定义pre指针保存前驱,定义cur指针遍历链表2.遍历链表,如果当前节点是第一次出现,那么就放入set表中,pre的后继指向当前节点,pre和cur都往后走 如果当前节点不是第一次出现,那么pre不动,cur往后走

2023-08-07 17:19:52 154

原创 leetcode原题 字符串轮转

所以只需要固定i,每个i都遍历一遍s2,如果s2的每个字符都满足s2[j]=s1[(i+j)%n],则说明是轮转的,如果所有的i都试了一遍,发现s2的字符都不能满足,则说明不是轮转的。2.如果s2是s1的轮转,那么s2[j]=s1[(i+j)%n],其中i就表示,从下标为i的元素后开始轮转的,如果s2是s1轮转过来的,那么在s1+s1这个字符串中一定可以完整的找到s2。注意:这里是轮转,不是翻转,字符串只是将一部分子串转移到了原字符串的后面。1.首先,如果两个字符串不相等,那么一定不是轮转的。

2023-08-06 16:47:06 226

空空如也

空空如也

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

TA关注的人

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