zoukankan      html  css  js  c++  java
  • 每天一道算法题(25)——字符串中连续出现次数最多的子串

    #include"iostream"
    #include"string"
    using namespace std;
    
    
    pair<string,int> fun(const string& str);
    int _tmain(int argc, _TCHAR* argv[])
    {
    	string str="abcbcbcabc";
    	pair<string,int> p=fun(str);
    	cout<<p.first<<": "<<p.second<<endl;
    	return 0;
    }
    
    pair<string,int> fun(const string& str){
    	if(str.empty())
    		return make_pair("a",0);
    
        int count,max=0;
    	string substr,st;
    	for(int i=str.length();i>=1;i--)
    		for(int j=0;j<str.length()-i+1;j++){
    			count=0;
    			st=str.substr(j,i);
    			for(int k=0;k<str.length()-i+1;k++)
    				if(!st.compare(str.substr(k,i)))
    					count++;
    			if(count>max){
    				max=count;
    				substr=st;
    			}
          }
    	return make_pair(substr,max);
    }


        注意: pair的使用,元素调用为first和second



  • 相关阅读:
    通过异常处理错误-2
    通过异常处理错误-1
    线程池
    Synchronized
    持有对象-4
    持有对象-3
    持有对象-2 迭代器深入理解
    ServletContextListener
    持有对象-1
    行为参数化
  • 原文地址:https://www.cnblogs.com/engineerLF/p/5393001.html
Copyright © 2011-2022 走看看