摘要:
kmp 什么是kmp kmp算法是一种字符串匹配算法,它对朴素模式匹配算法(时间复杂度 O(n*m))进行了改进,极大的减少了无用的匹配次数,降低时间复杂度(时间复杂度变为O(n+m)),提高算法效率。 什么叫kmp 该名字是由它的三位发明人的名字的缩写组成。(Knuth,Morris,Pratt) 阅读全文
posted @ 2023-05-10 18:13
小星code
阅读(995)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 459. 重复的子字符串 ###题意: 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 ###解题思路: 本题就是kmp算法的经典应用,n - next[n] 是原字符串的最小周期 ####完整代码如下: func repeatedSubs 阅读全文
posted @ 2023-05-10 18:12
小星code
阅读(18)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 剑指 Offer 58 - II. 左旋转字符串 ###题意: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab" 阅读全文
posted @ 2023-05-10 16:53
小星code
阅读(11)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 151. 反转字符串中的单词 ###题意: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 ###解题思路: 如果我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。 所以解题思路如下: 移 阅读全文
posted @ 2023-05-10 16:37
小星code
阅读(25)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 剑指 Offer 05. 替换空格 ###题意: 输入一个字符串 s ,然后将 s 中的每个空格替换成"%20"。 ###解题思路: 直接遍历一遍字符串, 如果当前字符不是空格,则加入到结果中 如果是空格,则将“%20”加入到结果集 ####完整代码如下: func 阅读全文
posted @ 2023-05-10 15:04
小星code
阅读(23)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 541. 反转字符串 II ###题意: 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 阅读全文
posted @ 2023-05-10 14:58
小星code
阅读(13)
评论(0)
推荐(0)
摘要:
###题目链接:LeetCode 344. 反转字符串 ###题意: 输入一个字符串,将其在原地进行反转。 ###解题思路: 对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。 ####完整代码如下: func reverse 阅读全文
posted @ 2023-05-10 14:37
小星code
阅读(19)
评论(0)
推荐(0)

浙公网安备 33010602011771号