#include <iostream>

#include <string>

using namespace std ;

/*

题目:给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。

用C/C++语言写一函数完成该算法,给出复杂度

这道题的最终目的是找到最长的连续字符串

*/

struct SubStringInfo

{

 int maxSubStrLength ;//最长字符串的长度

 string str ;//最长字符串

}strData;

bool Check(string &str,string substr) //检测某字符串是否连续

{

 int pre ; //前串

 int next;//后串

 if(str.length()==substr.length())

  return false ;

 pre=str.find(substr);  //查找字符串出现的位置

 if(pre==-1) return false; //如果找不到那么返回 string::npos到头  -1

 next=str.find(substr,pre+substr.length());

 if(next==pre+substr.length())

  return true ; 

 return false;

}

void SearchString(SubStringInfo &info,string &str)

{

 int len=str.length() ;//获取string长度 

 string  eachMaxString="";

 string  tem="";

 bool ret=false ;

 int index=0 ;

 for(int i=1;i<=len;i++)  //每个子串长度

 {  

  index=0;

  cout<<"Sub String Length:"<<i<<": "<<endl ;

  for(int j=len-i+1;j>0;j--)//该长度的子字符串有多少个

  {    

   tem=str.substr(index,i);//获取子字符串

   cout<<"index="<<index<<" "<<"i="<<i<<" "<<tem<<" " ;

   index++;

   ret=Check(str,tem) ;//检测

   if(ret)

   {  

    if(tem.length()>info.maxSubStrLength)

    {

     info.maxSubStrLength=tem.length() ;//保存长度

     info.str=tem ;

    }

   } 

  }

  cout<<"\n";

 }

}

void main()

{    

    strData.maxSubStrLength=0;  //初始化结构体

 strData.str="";

 string  str ;  //接受要输入的字符串 

 cout<<"输入字符串:"<<endl ;

 cin>>str ;    

 SearchString(strData,str) ;//搜索字符串

 cout<<"最长的连续字符串为:"<<strData.str<<endl;

}

C++面试题算法的更多相关文章

  1. 蓝桥杯——试题 算法训练 Yaroslav and Algorithm

    试题 算法训练 Yaroslav and Algorithm 资源限制 时间限制:100ms 内存限制:128.0MB 问题描述 (这道题的数据和SPJ已完工,尽情来虐吧!) Yaroslav喜欢算法 ...

  2. 简答一波 HashMap 常见八股面试题 —— 算法系列(2)

    请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注 ...

  3. JS面试题-算法台阶问题

    有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法: 今天电话面试.遇到一道算法问题,然后瞬间一脸懵逼: 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多步,每次走2步最少步:然后 ...

  4. Java数据结构和算法总结-字符串及高频面试题算法

    前言:周末闲来无事,在七月在线上看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说 ...

  5. [ Java面试题 ]算法篇

    1.堆和栈在内存中的区别是什么? 概念: 栈(stack)是为执行线程留出的内存空间.当函数被调用的时候,栈顶为局部变量和一些 bookkeeping 数据预留块.当函数执行完毕,块就没有用了,可能在 ...

  6. Java数据结构和算法总结-字符串相关高频面试题算法

    前言:周末闲来无事,看了看字符串相关算法的讲解视频,收货颇丰,跟着视频讲解简单做了一下笔记,方便以后翻阅复习同时也很乐意分享给大家.什么字符串在算法中有多重要之类的大路边上的客套话就不多说了,直接上笔 ...

  7. 直面Javascript面试题算法思路

    一.字符串遍历类 1.获取符合条件的字符 思路:一般使用正则表达式会比遍历字符串简单.a=str.match(reg),a即为所得. 例子:a.判断字符串是否是这样组成的,第一个必须是字母,后面可以是 ...

  8. 蓝桥杯 试题 算法提高 宰羊 DP解决

    问题描述 炫炫回了内蒙,肯定要吃羊肉啦,所有他家要宰羊吃. 炫炫家有N只羊,羊圈排成一排,标号1~N.炫炫每天吃掉一只羊(这食量!其实是放生啦),吃掉的羊的邻居会以为它被放生了,然后又会告诉他们的邻居 ...

  9. 蓝桥杯——试题 算法训练 Sereja and Squares

    Java 代码 ```` import java.util.Scanner; public class Main { private static long num = 0; private stat ...

随机推荐

  1. ActionBar官方教程(10)ActionBar的下拉列表模式

    Adding Drop-down Navigation As another mode of navigation (or filtering) for your activity, the acti ...

  2. string.Split函数

    正文 string str = "a---b---c"; string[] array = str.Split(new char[]{'-'}); 分割之后array中的元素为 分 ...

  3. HTML本地测试成功后上传博客注意事项

    需要注意不要跟博客已经存在的样式(CSS)或功能(JavaScript)起冲突 功能名一定不要一样 样式名尽量不一样 如果样式名一样,存在属性名的对应属性值尽量跟博客内相同

  4. hdu4649Professor Tian

    http://acm.hdu.edu.cn/showproblem.php?pid=4649 枚举当前状态是0或者是1的概率 其实就枚举1的概率 最后概率乘这个数 位运算用得不熟  老出错 #incl ...

  5. POI导出数据内存溢出问题

    POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好.3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWo ...

  6. Mysql监控工具小集合

    介绍一些常见的Mysql监控工具. Cacti Cacti是 一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过snmpget来获取数据,使用 RRDtool绘 ...

  7. Set up your first C# test with NUnit or resharper

    此链接为一种方式,用Nunit单元测试驱动测试代码 http://relevantcodes.com/using-nunit-to-execute-selenium-webdriver-tests/ ...

  8. SR4K的API使用(libMesaSR.dll)

    看看libMesaSR.dll的导出函数: 遇到的问题: error C4430: 缺少类型说明符 - 假定为 int.注意: C++ 不支持默认 int 解决: HWND等未定义 解决: #incl ...

  9. keystone 手动建立租户,用户,角色,服务,端口

    建立租户: root@cloud:~# keystone tenant-create --name=admin WARNING: Bypassing authentication using a to ...

  10. zoj 2588 Burning Bridges【双连通分量求桥输出桥的编号】

    Burning Bridges Time Limit: 5 Seconds      Memory Limit: 32768 KB Ferry Kingdom is a nice little cou ...