oj用户品牌
来源:互联网 发布:天猫魔盒下架原因 知乎 编辑:程序博客网 时间:2024/04/29 23:01
#include <iostream>#include <string>#include <cstring>#include <cstdlib>#include <map>using namespace std;const int maxn = 1000000 + 10;char P[maxn];int f[maxn];int main(){ string s; while(cin >> s){ map<int, int> halve; int n = s.size(); for(int i = 0; i < n; i++){ for(int j=i+1; 2*j-1-i < n; j++){ for(int k=0; i+k<j; k++){ if(s.at(k+i) != s.at(k+j)) break; if(k+i == j-1){ halve[i] = j; goto out; } } } out: ; } int count = 1; string ans; for(int i=0; i<n; i++) if(halve.count(i)){ f[i] = i; f[i+1] = i; for(int j = i+1; j < n; j++){ int k = f[j]; while(k!=i && s[j]!=s[k])k = f[k]; f[j+1] = (s[j]==s[k]) ? k+1 : i; } for(int j=i+2; j <= n; j++){ if(f[j] > 0 && (j-i) % (j-f[j]) == 0){ if((j-i) / (j-f[j]) > count){ count = (j-i) / (j - f[j]); ans = s.substr(i, j-i); } } } } cout << ans << endl; }}
C时间限制:1 毫秒 | C内存限制:3000 Kb
题目内容:
馅饼同学是一个在百度工作,做用户请求(query)分析的同学,他在用户请求中经常会遇到一些很奇葩的词汇。在比方说“johnsonjohnson”、“duckduck”,这些词汇虽然看起来是一些词汇的单纯重复,但是往往都是一些特殊品牌的词汇,不能被拆分开。为了侦测出这种词的存在,你今天需要完成我给出的这个任务——“找出用户请求中循环节最多的子串”。
输入描述
输入数据包括多组,每组为一个全部由小写字母组成的不含空格的用户请求(字符串),占一行。用户请求的长度不大于100,000。
输出描述
对于每组输入,输出这组用户请求中循环节最多的子串。如果一个用户请求中有两个循环节数相同的子串,请选择那个字典序最小的。
输入样例
duckduckgo
输出样例
duckduck
虽然通过了校oj,估计还是有问题。思路是根据一道计算从头开始重复最多的子字符串.对字符串做预处理,判断后面是否有重复字符串,如果有再做匹配。
其中KMP的应用,当不是从0开始时记得
while(k!=i && s[j]!=s[k])k = f[k];这行里就是k!=i,而不是判断是否k为0.
0 0
- oj用户品牌
- 47.用户品牌 (15分待续)
- 品牌
- 品牌
- 品牌
- 品牌
- 品牌
- SharePoint品牌化和自定义--第二章节--用户体验品牌化过程概览
- SharePoint品牌化和自定义--第二章节--用户体验品牌化过程概览(1)--4Ds
- SharePoint品牌化和自定义--第二章节--用户体验品牌化过程概览(3)--总结
- 【2012百度之星/资格赛】H:用户请求中的品牌
- 【2012百度之星/资格赛】H:用户请求中的品牌
- 【2012百度之星资格赛】H:用户请求中的品牌
- 百度之星之H:用户请求中的品牌
- SharePoint品牌化和自定义--第二章节--用户体验品牌化过程概览(2)--任务与责任
- 2012百度之星资格赛(H题:用户请求中的品牌)(字符串处理)
- 9大原因用户不在社交网站上分享你的品牌信息
- 标题、关键词和描述的独特性在于品牌词和用户
- [leetcode]: 383. Ransom Note
- git fetch, git pull与git rebase比较
- android用Intent隐式意图调起(百度,谷歌,高德地图)
- BP算法(C语言)实现神经网络(双层感知机)
- listview 刷新部分item
- oj用户品牌
- js 常用的js校验
- 面试学习内容
- android JS交互框架SimpleJavaJsBridge
- https
- git 命令
- 编程进阶
- Jquery/jqueryMobile接收数据,并将其添加到table中且覆盖掉重复行
- openglesForC++实现两幅图像混合的效果