LeetCode
刷题佛系
xiao黄
缓慢而坚定的生长
感兴趣的方向:复杂网络、社区发现(检测)、图神经网络、深度学习、节点重要性
目前研究方向:故障诊断(电网、AUV等),Simulink、PSCAD、AMESim建模等
展开
-
LeetCode|3. 无重复字符的最长子串
LeetCode习题答案汇总题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的原创 2021-03-22 23:06:35 · 223 阅读 · 0 评论 -
LeetCode|剑指 Offer 49.丑数
LeetCode习题答案汇总题目:我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。分析:与题目264相同传送门代码:class Solution: def nthUglyNumber(self, n: int) -> int:原创 2020-10-11 10:16:16 · 215 阅读 · 1 评论 -
LeetCode|264.丑数 II
LeetCode习题答案汇总题目:编写一个程序,找出第 n 个丑数。丑数就是质因数只包含 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。分析:就是结合2,3,5这三个数的相互组合相乘创建一个数组,每次更新最小值即可代码:class Solution: def nthUglyNumber(self, n: int) ->原创 2020-10-11 10:12:56 · 228 阅读 · 0 评论 -
LeetCode|面试题 17.09.第 k 个数
LeetCode习题答案汇总题目:有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。示例 1:输入: k = 5输出: 9分析:由题目可知,前面几个数字是1,3,5,7后面的数字是由3,5,7这三个数相乘结合得来的先构建一个长度为k的列表,初始值都为1然后通过自身和3、5、7相乘,取最小值,并且对应的·指针加1最后返回最后一个数即可代码:class原创 2020-10-10 13:14:19 · 555 阅读 · 0 评论 -
LeetCode|4.寻找两个正序数组的中位数
LeetCode习题答案汇总给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4]原创 2020-10-09 13:27:51 · 231 阅读 · 0 评论 -
LeetCode|148.排序链表
LeetCode习题答案汇总题目:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5分析:利用额外的空间存储链表的数进行原地排序创建新的链表,将值一一链进去代码:# Definition for singly-linked原创 2020-09-28 11:25:45 · 218 阅读 · 0 评论 -
LeetCode|82. 删除排序链表中的重复元素 II
LeetCode习题答案汇总题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3分析:利用字典记录每个数字出现的次数创建一个新的链表,将出现次数为1的加入到新链表中代码:# Definition for singly-link原创 2020-09-26 14:00:57 · 245 阅读 · 0 评论 -
LeetCode|2.两数相加
LeetCode习题答案汇总题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807分析:创建一个新的链表来保存原创 2020-09-25 15:38:59 · 452 阅读 · 0 评论 -
LeetCode|14.最长公共前缀
LeetCode习题答案汇总题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。分析:每次比较相邻两个字符串的最大公共前缀写一个函数比较求得两个字符串的最大公共前缀通过一次循环,得到最后结果代码:class Solution: def l原创 2020-09-24 20:46:43 · 230 阅读 · 0 评论 -
LeetCode|844.比较含退格的字符串
LeetCode习题答案汇总题目:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = “a##c”, T = “#a#c”输出:原创 2020-09-18 11:23:26 · 192 阅读 · 0 评论 -
LeetCode|11.盛水最多的容器
LeetCode习题答案汇总题目:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,原创 2020-09-18 11:04:34 · 179 阅读 · 0 评论 -
LeetCode|209.长度最小的子数组
LeetCode习题答案汇总题目:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。分析:一开始我想用暴力解法,结果超时了(不得不说,很多题都是用原创 2020-09-17 10:42:34 · 169 阅读 · 0 评论 -
LeetCode|299.猜数字游戏
LeetCode习题答案汇总题目:你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下:你写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个提示,告诉他的猜测数字中有多少位属于数字和确切位置都猜对了(称为“Bulls”, 公牛),有多少位属于数字猜对了但是位置不对(称为“Cows”, 奶牛)。朋友根据提示继续猜,直到猜出秘密数字。请写出一个根据秘密数字和朋友的猜测数返回提示的函数,返回字符串的格式为 xAyB ,x 和 y 都是数字,A 表示公牛,原创 2020-09-15 09:04:13 · 300 阅读 · 0 评论 -
LeetCode|706.设计哈希映射
LeetCode习题答案汇总题目:不使用任何内建的哈希表库设计一个哈希映射具体地说,你的设计应该包含以下的功能put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。remove(key):如果映射中存在这个键,删除这个数值对。示例:MyHashMap hashMap = new MyHashMap();hashMap.put(1, 1);hashMap.put(2原创 2020-09-14 10:21:50 · 240 阅读 · 0 评论 -
LeetCode|496.下一个更大的元素I
LeetCode习题答案汇总题目:给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于num1中的数字4,你无法在原创 2020-09-14 10:16:11 · 177 阅读 · 0 评论 -
LeetCode|451.根据字符出现频率排序
LeetCode习题答案汇总题目:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例 3:输入:“A原创 2020-09-13 15:13:39 · 291 阅读 · 0 评论 -
LeetCode|442.数组中重复的数据
LeetCode习题答案汇总题目:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]分析:先将数组进行排序通过遍历找到两个一样的就添加进返回列表中代码:class Solution: def findDuplicates(self, nums: List[in原创 2020-09-11 10:40:40 · 241 阅读 · 0 评论 -
LeetCode|400.第N个数字
LeetCode习题答案汇总题目:在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。注意:n 是正数且在32位整数范围内 ( n < 231)。示例 1:输入:3输出:3示例 2:输入:11输出:0说明:第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是0,它是10的一部分。分析:其实这题用暴力解法的话会超时,所以这题我就通过找规律来实现一位数的话原创 2020-09-10 10:20:31 · 342 阅读 · 0 评论 -
LeetCode|622.设计循环队列
LeetCode习题答案汇总题目:设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首原创 2020-09-09 15:58:46 · 318 阅读 · 0 评论 -
LeetCode|933.最近的请求次数
LeetCode习题答案汇总题目:写一个 RecentCounter 类来计算最近的请求。它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。返回从 3000 毫秒前到现在的 ping 数。任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。保证每次对 ping 的调用都使用比之前更大的 t 值。示例:输入:inputs = [“RecentCounter”,“ping”,“ping”,“ping”原创 2020-09-09 08:57:06 · 182 阅读 · 0 评论 -
LeetCode| 剑指 Offer 59-I.滑动窗口的最大值
LeetCode习题答案汇总题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3原创 2020-09-08 14:37:56 · 178 阅读 · 0 评论 -
LeetCode|398.随机数索引
LeetCode习题答案汇总题目:给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。示例:int[] nums = new int[] {1,2,3,3,3};Solution solution = new Solution(nums);// pick(3) 应该返回索引 2,3 或者 4。每个索引的返回概率应该相等。solution.pick(3);// pic原创 2020-09-08 11:26:22 · 234 阅读 · 0 评论 -
LeetCode|380.常数时间插入、删除和获取随机元素
LeetCode习题答案汇总题目:设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet randomSet = new RandomizedSet();// 向集合中插入 1 。返回 true 表示 1 被原创 2020-09-07 11:12:42 · 191 阅读 · 0 评论 -
LeetCode|378.有序矩阵中第k小的元素
LeetCode习题答案汇总题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。示例:matrix = [[ 1, 5, 9],[10, 11, 13],[12, 13, 15]],k = 8,返回 13。提示:你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。分析:将二维数组另存为为一维数组对该一维数组进行排序最后这个一维数组中的第 k个元素为答案。原创 2020-09-05 13:27:16 · 161 阅读 · 0 评论 -
LeetCode|347.前k个高频元素
LeetCode习题答案汇总题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以原创 2020-09-04 10:32:47 · 230 阅读 · 1 评论 -
LeetCode|322.零钱兑换(动态规划)
LeetCode习题答案汇总题目:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:你可以认为每种硬币的数量是无限的。分析:dp[i]指的是价格为i需要多少个硬币来原创 2020-09-03 10:59:02 · 271 阅读 · 0 评论 -
LeetCode|307.区域和检索
LeetCode习题答案汇总题目:给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。update(i, val) 函数可以通过将下标为 i 的数值更新为 val,从而对数列进行修改。示例:Given nums = [1, 3, 5]sumRange(0, 2) -> 9update(1, 2)sumRange(0, 2) -> 8说明:数组仅可以在 update 函数下进行修改。你可以假设 update 函原创 2020-09-02 11:50:12 · 188 阅读 · 0 评论 -
LeetCode|304.二维区域和检索
LeetCode习题答案汇总题目:给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:给定 matrix = [[3, 0, 1, 4, 2],[5, 6, 3, 2, 1],[1, 2, 0, 1, 5],[4, 1, 0, 1, 7],[1, 0, 3, 0原创 2020-09-01 10:53:12 · 195 阅读 · 0 评论 -
LeetCode|300.最长上升子序列
LeetCode习题答案汇总题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?分析:如果数组为空,则直接返回0如果不为空,则定义dp其中dp=1,因为最少有一个然后原创 2020-08-31 11:02:31 · 197 阅读 · 0 评论 -
LeetCode|238.除自身以外数组的乘积
LeetCode习题答案汇总题目:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?(原创 2020-08-30 15:19:33 · 133 阅读 · 0 评论 -
LeetCode|240.搜索二维矩阵II
LeetCode习题答案汇总题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 tr原创 2020-08-25 16:42:22 · 193 阅读 · 0 评论 -
LeetCode|213.打家劫舍II(动态规划)
LeetCode习题答案汇总题目:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2),原创 2020-08-24 15:28:25 · 247 阅读 · 0 评论 -
LeetCode|165.比较版本号
LeetCode习题答案汇总题目:比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。. 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本原创 2020-08-23 12:02:00 · 205 阅读 · 0 评论 -
LeetCode|162.寻找峰值
LeetCode习题答案汇总题目:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例 1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入: nums = [1,2,1,3,5,6,4]输出: 1 或原创 2020-08-22 14:40:05 · 231 阅读 · 0 评论 -
LeetCode|75.颜色分类
LeetCode习题答案汇总题目:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。原创 2020-08-22 14:29:24 · 271 阅读 · 0 评论 -
LeetCode|74.搜索二维矩阵
LeetCode习题答案汇总题目:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34, 50]]target = 3输出: true示例 2:输入:matrix = [[1, 3, 5, 7],[10, 11, 16, 20],[原创 2020-08-22 14:18:15 · 158 阅读 · 0 评论 -
LeetCode|剑指 Offer 03.数组中重复的数字
LeetCode习题答案汇总题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000分析:排序后找到第i个和第i+1个元素一样的就是了代码:class Solution: def findRe原创 2020-08-21 14:46:41 · 174 阅读 · 0 评论 -
LeetCode|73.矩阵置零
LeetCode习题答案汇总题目:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]分析:这里使用了额外的空间来记录0所在的行和原创 2020-08-21 14:20:17 · 175 阅读 · 0 评论 -
LeetCode|541.反转字符串II
LeetCode习题答案汇总题目:给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”提示:该字符串只包含小写英文字母。给定字符串的长度和 k 在 [1, 10000] 范围内。分析:利用字符串的切片代码:cla原创 2020-08-21 10:11:11 · 180 阅读 · 0 评论 -
LeetCode|392.判断子序列
LeetCode习题答案汇总题目:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = “abc”, t = “ahbgdc”返回 true.示例 2:s =原创 2020-08-21 10:02:29 · 180 阅读 · 0 评论