![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
文章平均质量分 63
个人学习LeetCode算法中记录的东西
白布鸽
比较有个性的签名
展开
-
LeetCode459.重复的子字符串
KMP算法中的next数组索引位的值就代表当前相等的前后缀的长度,而当前题目的特性是字符串是由子字符串重复构成,那么最长的前后缀一定也是由子字符串构成的,所以最长前后缀的差集一定是子字符串,证明如下。因为最长前后缀是相等的,所以 p[0]=s[0],p[1]=s[1],p[2]=s[2],而s[0]=f[3],s[1]=f[4],s[2]=f[5];所以可以证得f[0]=f[3],f[1]=f[4],f[2]=f[5],重复循环下去就可以证得字符串是由子字符串重复构成。原创 2023-10-29 22:48:05 · 60 阅读 · 1 评论 -
LeetCode151.反转字符串中的单词
题目要求去除string的首尾空格,因此需要两个指针start end来记录去除首尾空格之后的内容的起始和结束index,right和left两个指针的初始index为end+1和end,然后left去找遇到的第一个空格,然后用substring()方法截取单词加入到StringBuilder对象中,StringBuilder对象再添加一个空格,然后left需要去去除单词间的多余的空格,找到单词间若干空格的第一个空格,赋值给right,然后left再去找下一个空格,然后截取字符串。原创 2023-10-26 22:40:00 · 25 阅读 · 0 评论 -
LeetCode541.反转字符串
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。思路很简单,每次处理2K个单位,处理前k个字符串,是否需要处理最后剩余的字串就根据i+k是否越界来判断。// 判断尾数够不够k个来取决end指针的位置。原创 2023-10-26 08:34:20 · 30 阅读 · 0 评论