leetcode刷题/字符串
文章平均质量分 59
记录leetcode上字符串的刷题感想
公仔面i
这个作者很懒,什么都没留下…
展开
-
leetcode刷题/字符串 567. 字符串的排列
567. 字符串的排列题意:给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输入:s1 = "ab" s2 = "eidbaooo"输出:true解释:s2 包含 s1 的排列之一 ("ba").示例 2:输入:s1= "ab" s2 = "eidboaoo"输出:false解题思路:问答什么叫排序相等?就是相同的字母,顺序不同怎么判断?在s2中寻.原创 2021-07-29 00:22:57 · 173 阅读 · 0 评论 -
leetcode刷题/字符串 14. 最长公共前缀
14. 最长公共前缀题意:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。解题思路:第二种,暴力解法.循环遍历第一个字串长度(公共前缀不可能比任何一个字串长),循环内嵌套遍历所有字串.判断相同位置的字串字符是否相同,不同就截原创 2021-07-24 11:48:40 · 158 阅读 · 0 评论 -
leetcode刷题/字符串 28. 实现 strStr()
28. 实现 strStr()题意:实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。示例 1:输入:haystack = "hello", needle = "ll"输出:2示例 2:输入:haystack = "aaaaa", needle = "bba"输出:-1示例 3:输入:haystack = "", ne原创 2021-07-20 14:53:44 · 94 阅读 · 0 评论 -
leetcode刷题/字符串 459. 重复的子字符串
459. 重复的子字符串题意:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)解题思想:利原创 2021-07-20 14:50:12 · 129 阅读 · 0 评论 -
leetcode刷题/字符串 剑指 Offer 58 - II. 左旋转字符串
剑指 Offer 58 - II. 左旋转字符串题意:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出: "cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出: "umghlrlose"解题思路:这道题有两种解法:第一种:申请原创 2021-07-19 11:16:31 · 223 阅读 · 0 评论 -
leetcode刷题/字符串 151. 翻转字符串里的单词
151. 翻转字符串里的单词题意:给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例 1:输入:s = "the sky is blue"输出:"blue is sky the"示例 2:输入:s原创 2021-07-19 10:12:01 · 240 阅读 · 0 评论 -
leetcode刷题/字符串 剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格题意:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."解题思路:运用双指针法:先计算空格的个数,记录当前的字符串下标 i,然后重新设置字符串大小,有一个空格就多加两个字符的位置(加上空格就等于3个位).记录尾部下标 j循环直到 i<0.如果是空格就替换s[j] = 0,s[j-1] = 2,s[j-2] = %.如果不是空格就s[原创 2021-07-18 20:00:32 · 109 阅读 · 0 评论 -
leetcode刷题/字符串 541. 反转字符串 II
541. 反转字符串 II题意:给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。示例:输入: s = "abcdefg", k = 2输出: "bacdfeg"解题思路:这道题的题意看了好久,大概就是每2K个字符里面前K个字符反转.直到不足2K个字符,以剩余字符的个数判断情况具体解法:定原创 2021-07-18 10:11:34 · 118 阅读 · 0 评论 -
leetcode刷题/字符串 344. 反转字符串
344. 反转字符串题意:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","a","n","原创 2021-07-18 07:22:44 · 167 阅读 · 0 评论 -
leetcode刷题 08_字符串转换整数 (atoi)
8. 字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入原创 2021-07-01 16:04:24 · 329 阅读 · 0 评论 -
leetcode刷题 07_ 整数反转
7. 整数反转 - 力扣题目:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0解题思路:先定义一个结果,每一次取数的时,结果原创 2021-06-30 11:15:10 · 113 阅读 · 0 评论 -
leetcode刷题 06_Z字形变换
6. Z 字形变换题目:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示原创 2021-06-30 08:47:50 · 286 阅读 · 0 评论 -
leetcode刷题 05._最长回文子串(超时)
5. 最长回文子串给你一个字符串 ‘s’,找到 ‘s’ 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"解题思路:我只能现在想到暴力解法,而且还超时了,难受.先定左下标,右下标,然后如果当前下标是回文数就左边加一,右边减一,直到有一个不符合或者字符串已经结束,就返回原创 2021-06-29 00:00:06 · 269 阅读 · 0 评论 -
leetcode刷题 04_寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 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] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入原创 2021-06-27 12:47:31 · 151 阅读 · 0 评论 -
leetcode刷题 03_无重复字符串
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"原创 2021-06-27 00:25:49 · 135 阅读 · 0 评论