求一个字符串中连续出现并且出现次数最多的子串.
来源:互联网 发布:市场调查问卷数据分析 编辑:程序博客网 时间:2024/05/16 13:41
求一个字符串中连续出现次数最多的子串. 基本算法描述: 给出一个字符串abababa 1.穷举出所有的后缀子串 substrs[0] = abababa; substrs[1] = bababa; substrs[2] = ababa; substrs[3] = baba; substrs[4] = aba; substrs[5] = ba; substrs[6] = a; 2.然后进行比较 substrs[0]比substrs[1]多了一个字母,如果说存在连续匹配的字符,那么 substrs[0]的第1个字母要跟substrs[1]首字母匹配,同理 substrs[0]的前2个字母要跟substrs[2]的前2个字母匹配(否则不能叫连续匹配) substrs[0]的前n个字母要跟substrs[n]的前n个字母匹配. 如果匹配的并记下匹配次数.如此可以求得最长连续匹配子串. */ #include <iostream> #include <string> #include <vector> using namespace std; pair<int, string> fun(const string &str) { vector<string> substrs; int maxcount = 1, count = 1; string substr; int i, len = str.length(); for(i=0; i<len; ++i) substrs.push_back(str.substr(i, len-i)); /*for(i=0; i<len; ++i) cout << substrs[i] << endl;*/ for(i=0; i<len; ++i) { for(int j=i+1; j<len; ++j) { count = 1; if(substrs[i].substr(0, j-i) == substrs[j].substr(0,j-i)) { ++count; for(int k=j+(j-i); k<len; k+=j-i) { if (substrs[i].substr(0,j-i) == substrs[k].substr(0, j-i)) ++count; else break; } if(count > maxcount) { maxcount = count; substr=substrs[i].substr(0, j-i); } } } } return make_pair(maxcount, substr); } int main() { pair<int, string> rs; string str="abababababaccccc"; rs = fun(str); cout << rs.second<<':'<<rs.first<<'\n'; system("pause"); return 0; }
0 0
- 求一个字符串中连续出现并且出现次数最多的子串.
- 求一个字符串连续出现次数最多的子串
- 求字符串中连续出现次数最多的子串
- 求字符串中连续出现次数最多的子串
- 字符串---求一个字符串中连续出现次数最多的子串
- 求一个字符串中出现次数最多的子串(并不是连续的)
- 编程珠玑(四)求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串[C语言实现]
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现的次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串【转】
- 求一个字符串中连续出现次数最多的子串
- 求一个字符串中连续出现次数最多的子串
- 【ExtJs】ExtJs4.2.1的配置与Helloworld
- 分水岭算法及源代码
- [leetcode] Happy Number
- Xenapp负载监控
- Android配置文件AndroidManifest.xml注释
- 求一个字符串中连续出现并且出现次数最多的子串.
- 一些常用的电脑使用技巧[Windows]
- junit的一个bug+实例验证+解决方案(两种)
- Flume相关技术汇总
- freemaker中文乱码 springMVC框架中
- Xenapp磁盘监控
- WPF之Uri加载图片
- overridePendingTransition简介
- 互联网相似图像识别检索引擎 —— 基于图像签名的方式