![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 54
SNAKEpc12138
这个作者很懒,什么都没留下…
展开
-
字符串第八天
leetcode题目459.重复的子字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解释: 可由子字符串 “abc” 重复四次构成。(或者子字符串 “abcabc” 重复两次构成。)思路...转载 2021-05-29 11:07:25 · 105 阅读 · 0 评论 -
字符串第七天
leetcode题目:28. 实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1思路本题是KMP经典题目。KMP的经转载 2021-05-27 14:54:28 · 138 阅读 · 0 评论 -
字符串第六天:KMP算法
文章转自:https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0028.%E5%AE%9E%E7%8E%B0strStr.md大佬公众号:代码随想录来源KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP应用场景KMP主要应用在字符串匹配上。KMP的主要思想是【当出现字符串不匹配时,可转载 2021-05-25 15:57:39 · 131 阅读 · 0 评论 -
字符第五天
题目:剑指Offer58-II.左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”示例 2:输入: s = “lrloseumgh”, k = 6输出: “umghlrlose”限制:1 <= k < s.length <=转载 2021-04-19 09:58:27 · 94 阅读 · 0 评论 -
字符串第四天
leetcode题目:151.翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。思路将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒叙了,那么再把单词反转一下,单词就正过来了。所以解题思路如下:移除多余空格将整个字符串反转将每个单词反转如图:C++代码class sol转载 2021-04-18 11:58:12 · 78 阅读 · 0 评论 -
字符串第三天
leetcode剑指Offer 05.替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”思路如果想把这道题目做到极致,就不要只用额外的辅助空间了!首先扩充数组到每个空格(因此需要得到字符串中空格的数量)替换成"%20"之后的大小。然后从后向前替换空格,也就是双指针法,过程如下:i指向新长度的末尾,j指向旧长度的末尾。为什么要从后向前填充,从前向后填充不行么?从前向后填充就转载 2021-04-17 14:14:06 · 134 阅读 · 0 评论 -
字符串第二天
leetcode题目:541. 反转字符串II给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。思路这道题目其实也是模拟,实现题目中规定的反转规则就可以了。在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。那么这里具体反转的逻辑我们要转载 2021-04-16 13:13:24 · 86 阅读 · 0 评论 -
字符串第一天
leetcode题目:344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。思路对于这道题目其实我们可以直接用C++里的一个库函数 reverse,调一下直接完事了, 相信每一门编程语言都有这样的库函数。如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数。如果库函数转载 2021-04-15 14:47:59 · 76 阅读 · 0 评论