求一个字符串中连续出现次数最多的子串
2015-09-03 17:27
387 查看
求一个字符串连续出现次数最多的子串
//求一个字符串中连续出现次数最多的字符串 pair<int,string> calcuate(const string& str) { int len = str.length(); vector<string>substrs; int count = 1; int max = 1;//记录最大出现的次数 string str1; int i , j; for( i = 0;i < len;i++) { substrs.push_back(str.substr(i,len - i));// } for( i = 0;i < len;i++) { for( j = i + 1;j < len;j++) { count = 1; if(substrs[i].substr(0,j-i)==substrs[j].substr(0,j-i))//判断是否第二次出现某类型子串 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 > max) { max = count; str1 = substrs[i].substr(0,j-i); } } } } return make_pair(max,str1); } int main() { pair<int, string> rs; string str="ababababac"; rs = calcuate(str); cout << rs.second<<':'<<rs.first<<'\n'; return 0; } <strong> </strong>
相关文章推荐
- 寻找数组中的最大值和最小值
- GNOME 基金会签署用户数据宣言 2.0
- Java十六进制与十进制间相互转换
- SharePoint 2016 IT Professional —— Configure Hybrid OneDrive and Sites Features (New Feature)
- st-Hg使用
- Linux下如何查看定位当前正在运行的Nginx的配置文件
- ZOJ Design the city LCA转RMQ
- 九度OJ 题目1117:整数奇偶排序
- 开学季--已然大二的我。
- 史上最强大的模板练习题——JZOJ1149排序
- 动态规划 钢条切割
- 从尾到头输出一个链表的几种方法
- [EF]vs15+ef6+mysql这个问题,你遇到过么?
- 九度OJ 题目1116:加减乘除
- 海思Hi3536开发——处理器整体架构了解
- 避免代码冗余,使用接口和泛型重构Java代码
- 家庭网络
- TCP连接如何断开连接
- java_Static函数
- android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord)