C++实现在一个字符串中寻找最大子串
2014-10-30 19:21
232 查看
//#include "stdafx.h" #include<iostream> #include<vector> #include<string> #include<utility> using namespace std; pair<int ,string> fun(const string &s) { vector<string> substrs; string substr; int length=s.length(); for(int i=0;i<length;++i) { substrs.push_back(s.substr(i,length-i)); } cout<<"后缀子串分别为"<<endl; for(vector<string>::size_type index=0;index!=substrs.size();++index) cout<<substrs[index]<<endl; int count=0,maxcount=0; for(int i=0;i<length;++i) { for(int j=i+1;j<length;++j) { count=1; if(substrs[i].substr(0,j)==substrs[j].substr(0,j)) { ++count; for(int k=j+(j-i);k<length;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() { string s("abcbcbcabc"); pair<int,string> pair; pair=fun(s); cout<<pair.second<<" "<<pair.first<<endl; system("pause"); return 0; }
相关文章推荐
- c++之求一个字符串中的最大回文子串
- [字符串]寻找一个字符串中最大的公共子串
- C++面试题之写一个在一个字符串中寻找一个子串第一个位置的函数
- C++实现求两个字符串的最大公共子串
- 输入一个字符串,要求找出字符串中最大子串的长度
- 算法4.1 在一个字符串寻找子串,并返回位置
- C++采用递归算法寻找一个整型数组中的最大元素
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- C++_USACO_求一个字符串的从开头字母开始,直到发现某一不相同字母时,这个子串的长度
- 寻找字符串中的最大不同子串
- 求一个字符串s的最大连续递增数字子串
- 寻找一个字符串中连续出现次数最多的子串
- 寻找一个字符串中最长的重复子串,如 abcdabc 最长重复串 是abc
- 实现一个字符串查找子串的函数
- 在一个字符串中寻找到最长重复子串(1)
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(3) 最大子序列和问题
- 寻找一个字符串中连续出现次数最多的子串
- 寻找最大的k个数,TopK问题的C++实现
- 在字符串中查找连续重复的最长子串的C++实现
- 小程序(十三)求一个字符串的最大回文子串