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

电子商务网站设计与...今日头条热点新闻

电子商务网站设计与...,今日头条热点新闻,房屋设计图制作软件,手机免费做网站题目描述 解题思路 这一题本来在想怎么样做才能获得通用解&#xff0c;因为乍一看总感觉遍历的时间代价会非常高。直到后面看到提示&#xff1a; 提示里面专门包含了一个n < k * 8&#xff0c;这太反常了。后面仔细一想&#xff0c;有道理&#xff0c;最后答案的字符个数一定…

题目描述

解题思路

这一题本来怎么才能获得通用因为乍一看感觉遍历时间代价非常直到后面看到提示

提示里面专门包含一个n < k * 8,这太反常了。后面仔细一想,有道理,最后答案的字符个数一定小于8,因为 字符 k一定小于字符串长度否则这个候选一定无法重复k

那么直接给了遍历信心

直接遍历2字母组合开始遍历直到8为止,满足条件候选尝试接第三个候选字符,第四个候选字符,直到接不了任何字母为止至于能否重复k直接遍历字符看看目前候选是否k

唯一需要关注哪些过滤条件

  • 首先每个字母出现频率进行次数统计
  • 候选每个字母出现频率必须>=k
  • 字符串每次匹配一次候选时候都要判断候选字符剩余个数能否支持k重复
  • 添加候选字符如果目前候选解里面包含这个候选字符添加候选字符字符候选个数m那么cnt[候选字符] >= m * k理论可以这样加速,但我懒没有实现)
  • 添加候选字符字典序优先添加这样返回结果直接返回candidate[0]就可以加速

代码

string longestSubsequenceRepeatedK(string s, int k) {
	vector<int> cnt;
	vector<string> candidate;
	cnt.resize(26);for(int i = 0; i < s.size(); i++){
		cnt[s[i] - 'a'] ++;}for(int i = 25; i >= 0; i--)if(cnt[i] >= k)
	candidate.emplace_back(string(1,i + 'a'));	for(int num = 2; num < 8; num++){
	vector<string> new_candidate;for(int i = 0; i < candidate.size(); i++){int remain = 0;char last = candidate[i].size() - 1;for(int q = 25 ; q >= 0; q--){
			remain = cnt[q];if(remain < k) continue;int curr_idx = 0;int curr_k = k;bool flag = true;for(int idx = 0; idx < s.size(); idx ++){if(flag && s[idx] == candidate[i][curr_idx]){if(curr_idx == last){if(s[idx] == q + 'a') remain--;if(remain < curr_k)break;
						curr_k --;if(curr_k == 0){
							new_candidate.emplace_back(candidate[i]+ char(q + 'a'));break;}
						flag = false;continue;}
					curr_idx = (curr_idx + 1)% candidate[i].size();}if(s[idx] == q + 'a'){
					remain --;if(!flag){
						curr_idx = 0;
						flag = true;}}}}	}if(new_candidate.empty()) break;
	candidate.swap(new_candidate);}if(candidate.empty()) return "";return candidate[0];
}

http://www.dtcms.com/wzjs/378809.html

相关文章:

  • 装饰公司网站模板新媒体营销案例ppt
  • 高端网站建设公司名字搜索引擎推广的常见形式有
  • 哪些做批发的网站比较正规关键词林俊杰百度云
  • 线上推广员的工作内容google seo怎么做
  • 有本地服务器怎么做网站培训总结
  • 宝藏ppt模板免费下载seo技术培训茂名
  • 南昌网站建设公司服务器大学生网络营销策划方案书
  • 一起做网店17网seo实战密码第三版pdf
  • 买机箱网站郑州网站排名推广
  • 怎么给钓鱼网站做防红百度竞价推广怎么做效果好
  • 查看网站名称微信引流推广怎么找平台
  • 黄骅市网站建设软文标题大全
  • 巴中市做网站怎么去营销自己的产品
  • 空间做网站搜索引擎营销的步骤
  • 网站推广积分百度贴吧怎么发广告
  • 中山移动网站建设报价百度提问
  • 黑龙江电商网站建设seo站长助手
  • 网站英文版怎么做品牌宣传如何做
  • 贸易公司寮步网站建设百度小说搜索排行榜
  • 想重装wordpress温州seo结算
  • wordpress权限代码seo免费视频教程
  • 长沙哪里有创建网站的公司网站提交收录
  • 如何改更wordpress上下文章链接东莞百度seo电话
  • php编程seo外贸推广
  • 让别人做网站是要每年续费吗品牌推广包括哪些内容
  • 怎么样做免费网站免费二级域名分发平台
  • 做豆制品的网站互联网营销方式有哪些
  • 网站开发工具有组合免费建一个自己的网站
  • 学院网站建设项目郑州网站推广公司电话
  • 做搜狗网站优化首页软网站排名seo教程