连续字符串的截取

一个面试题:

    给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。C/C++语言写一函数完成该算法,给出复杂度

     这么题目在网上有很多的解答的方法,本人参考了网上的程序并自己写了一个程序,仅供参考,如果程序有漏洞的话,希望各位给予指出。

 

具体的实现思路如下:

 

  先从最左的开始,一个一个字符地扫描,设扫到的index为index. 在扫描到的字符及其右边的所有字符里查找最长的连续出现的字符串. 
具体方法是: 
 1.取得这些字符串的长度totallen-index,除以2,得到可能的重复字符串的最长长度len.   
 2.判断str(index,index+len)和str(index+len,index+len+len)是不是一样,是的话返回str(index,index+len); 
 3.不是则len-1,重复第2步直到len   =   0; 
 4.index   加一,重复第1步.   

具体的实现代码如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值