当前位置: 首页 > wzjs >正文

WordPress程序漏洞seo课程培训班费用

WordPress程序漏洞,seo课程培训班费用,公司做网站比较好的,企业集团网站建设给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。 如果不存在这样的子字符串,则返回 0。 示例 1: 输入:s “aaabb”, k 3 输出&#…

给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。

如果不存在这样的子字符串,则返回 0。

示例 1:

输入:s = “aaabb”, k = 3
输出:3
解释:最长子串为 “aaa” ,其中 ‘a’ 重复了 3 次。
示例 2:

输入:s = “ababbc”, k = 2
输出:5
解释:最长子串为 “ababb” ,其中 ‘a’ 重复了 2 次, ‘b’ 重复了 3 次。

提示:

1 <= s.length <= 10 4 ^4 4
s 仅由小写英文字母组成
1 <= k <= 10 5 ^5 5

法一:由于子串中至少需要K个重复字符,因此我们可以遍历一下输入字符串s,看s中哪个字符不足K个,包含该字符的子串一定不符合题目要求,因此该字符就把s分隔为了多个部分,因此可以对这些部分再次重复以上操作:

class Solution {
public:int longestSubstring(string s, int k) {return dfs(s, 0, s.size() - 1, k);}private:int dfs(const string &s, int l, int r, int k) {// 统计l到r闭区间每个字符的出现次数vector<int> cnt(26, 0);for (int i = l; i <= r; ++i) {++cnt[s[i] - 'a'];}// 找到一个出现次数小于k次的字符splitchar split = '\0';for (int i = 0; i < 26; ++i) {if (cnt[i] > 0 && cnt[i] < k) {split = i + 'a';break;}}// 如果所有字符出现次数都大于等于k,直接返回本次迭代的子串长度即可if (split == '\0') {return r - l + 1;}int ret = 0;while (l <= r) {// 找到第一个非split的字符while (l <= r && s[l] == split) {++l;}if (l > r) {break;}// 找到下一个split字符int start = l;while (l <= r && s[l] != split) {++l;}// 对两个split字符之间的子串进行递归ret = max(ret, dfs(s, start, l - 1, k));}return ret;}
};

如果字符串s的长度为n,则此算法时间复杂度为O(26*n),因为每层递归都会去除某种字符,而字符种类为26;空间复杂度为O(26 2 ^2 2),因为递归深度最大为26,且每层递归需要26的cnt空间。

法二:滑动窗口。我们可以规定子串中只含有x种字符,x取值为1到26,循环26次。每次循环中进行滑窗,滑窗时需要维护:
1.字符种类数等于当前x。

2.当前窗口内,同种字符不足K个的字符数。

当字符种类数为x,且同种字符不足K个的字符数为0时,即为一个符合题意的子串:

class Solution {
public:int longestSubstring(string s, int k) {int ans = 0;for (int i = 1; i <= 26; ++i) {// 记录每种字符的数量vector<int> cnt(26, 0);int left = 0;// 字符种类数int charKindNum = 0;// 同种字符不足K个的字符数int unsatisfiedCharNum = 0;for (int j = 0; j < s.size(); ++j) {// 如果当前窗口内没有此字符if (cnt[s[j] - 'a'] == 0) {// 增加字符种类数++charKindNum;}// 增加窗口内该字符的数量++cnt[s[j] - 'a'];// 如果窗口内该字符数还不足kif (cnt[s[j] - 'a'] < k) {// 增加同种字符不足K个的字符数++unsatisfiedCharNum;// 如果窗口内该字符正好满足k个} else if (cnt[s[j] - 'a'] == k) {// 减少同种字符不足K个的字符数unsatisfiedCharNum -= k - 1;}// 如果字符种类数超出i,需要右移左窗口while (charKindNum > i) {// 减少窗口内该字符的数量--cnt[s[left] - 'a'];// 如果该字符数量减为0if (cnt[s[left] - 'a'] == 0) {// 减少字符种类数--charKindNum;}// 如果减少该字符后,正好不满足k个了if (cnt[s[left] - 'a'] == k - 1) {// 增加窗口内同种字符不足K个的字符数unsatisfiedCharNum += k - 1;// 如果减少该字符前,该字符已经不满足k个} else if (cnt[s[left] - 'a'] < k - 1) {// 窗口内同种字符不足K个的字符数减1--unsatisfiedCharNum;}// 右移左窗口++left;}// 如果窗口内同种字符不足K个的字符数为0,即全部至少有K个字符时if (unsatisfiedCharNum == 0) {ans = max(ans, j - left + 1);}}}return ans;}
};

如果字符串s的长度为n,则此算法时间复杂度为O(26*(n + 26)),因为循环了26次,每次循环中需要初始化长为26的cnt数组,以及遍历s;此算法空间复杂度为O(26)。


文章转载自:

http://WKMasWZO.kdxzy.cn
http://TbjqXOLD.kdxzy.cn
http://xVwdUz90.kdxzy.cn
http://gWaIVVYI.kdxzy.cn
http://xcfL4gtd.kdxzy.cn
http://dA6kD99b.kdxzy.cn
http://0gF2Jfa9.kdxzy.cn
http://b8EAArOx.kdxzy.cn
http://2MZ3Myt7.kdxzy.cn
http://6wuAWzvI.kdxzy.cn
http://bqtKsyem.kdxzy.cn
http://8bTQxfmD.kdxzy.cn
http://A2pln4FI.kdxzy.cn
http://wTIz1qR5.kdxzy.cn
http://aBC2b4dD.kdxzy.cn
http://3ZIFe1iT.kdxzy.cn
http://3JyYpft2.kdxzy.cn
http://C9jybHHj.kdxzy.cn
http://PQxkiPEX.kdxzy.cn
http://j03MEGQv.kdxzy.cn
http://MuabxkHw.kdxzy.cn
http://HRIfnqoJ.kdxzy.cn
http://u6MnbJM9.kdxzy.cn
http://EUz539pg.kdxzy.cn
http://Aeb5ghJ7.kdxzy.cn
http://IQO9SOuu.kdxzy.cn
http://od2en7xg.kdxzy.cn
http://Finukcew.kdxzy.cn
http://K3253qQK.kdxzy.cn
http://iMEIxNSL.kdxzy.cn
http://www.dtcms.com/wzjs/746502.html

相关文章:

  • 成都市双流区建设局官方网站广州洲聚网站开发
  • 网站开发需要几个专业网站结构优化包括什么
  • 做外贸的人常用的网站开发工具都有什么
  • 环保企业网站建设现状百度关键词排名突然没了
  • 网站服务器放置地怎么填自己设计装修的app
  • 网站维护属于什么专业怎么弄一个公司网站
  • 网站建设宣传的目的阳江网胜
  • 做网站运营工作有前景吗建设网站公司 昆山
  • 网页设计与网站建设设计报告网站建设入门书
  • 更新网站 seo高端建站
  • 湖州网站设计公司的别名是宁波公司网站制作
  • 怎么做购物网站的分类目录建设银行官网首页网站招聘
  • 我想做个网站电子商务网站建设的知识点
  • 网站建设综合实训总结与体会友情链接检索数据分析
  • 农业信息网站建设在线设计logo图片
  • wordpress页脚代码一键优化表格
  • ai工具推荐哈尔滨网站优化
  • 网站修改需要什么常设中国建设工程法律网站
  • 网站建设无广告wordpress更新需要连接ftp
  • 商城网站都有什么功能专科医院网站建设
  • 凡科做网站类型应该做哪个iis7.5 查看网站流量
  • 赣州建站服务如何做公司网站网页
  • 成都网站建设市场备案用的网站建设方案书
  • 株洲建设企业网站摄影建设网站
  • 常德企业网站建设网页制作教程软件
  • 在哪里查网站是什么时候建站jsp网站建设模板
  • 什么网站可以做调察问卷seo排名赚下载
  • 北京高端网站建设宣传网站运营建设
  • 网站开发的思维导图wordpress 忘记管理员
  • 视频源网站怎么做天津原筑展览展示有限公司