博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
找出一个字符串中最长连续相同子串
阅读量:7073 次
发布时间:2019-06-28

本文共 1082 字,大约阅读时间需要 3 分钟。

题目:找出一个字符串中最长连续相邻子串,比如ababcabc,最长连续字串是abc。

分析:第一步,首先定义一个指针pStr定位于字串首部,再定义一个指针qStr指向pStr的下一个,然后qStr++找出与*pStr相同的字符;

第二步,如果找到*qStr==*pStr,则递增两个指针,并计算下相同字符的数目num和这段相同子字符串的index。

第三步,如果*qStr!=*pStr,则设置num=0。接着转向第一步...

第四步,定义一个maxNum和一个maxIndex,记录最长子字符串的长度和位置。如果一个新的num>maxNum,则maxNum=num,maxIndex=index。

#include 
using namespace std; void FindStr(char* str) {
if(str == NULL) return; char* pStr = str; char* qStr = str+1; char* index = str; char* maxIndex = str; int num = 0; int maxNum = 0; while(*pStr != '\0') {
while(*qStr != *pStr){
num = 0; qStr++; } while(*qStr == *pStr && *pStr !='\0' && *qStr !='\0') {
num++; index = pStr; qStr++;//千万不要放在if(...)中 pStr++; } if(num>=1) index = index-num+1; if(num > maxNum){
maxNum = num; maxIndex = index; } // pStr++; qStr = pStr+1; } cout << "Result: "; for(int i=0;i

  

转载于:https://www.cnblogs.com/phoenixzq/archive/2011/09/19/2181080.html

你可能感兴趣的文章
【非凡程序员】  OC第十一节课 (代码块)
查看>>
Java正则表达式详解(三)
查看>>
无线网络布署方式
查看>>
loadrunner 乱码问题设置总结
查看>>
php安装redis 和redis扩展
查看>>
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)
查看>>
org.apache.jasper.jasperException
查看>>
详解 ML2 Core Plugin(I) - 每天5分钟玩转 OpenStack(71)
查看>>
week03_python解析式
查看>>
盘点中国未来最具潜力的IT培训学校前5名
查看>>
php5.4.26 安装出现 error: ‘struct gdIOCtx’ has no member named ‘data’
查看>>
java 后端简单分页
查看>>
局域网安全6 ARP***
查看>>
Protostar stack5
查看>>
LeetCode - 100. 相同的树
查看>>
三星s系列和note系列记录
查看>>
[iOS Animation]CALayer-图层时间-CAMediaTiming协议
查看>>
基本数据类型对象包装类
查看>>
阿里巴巴Dubbo实现的源码分析
查看>>
[UWP]用Shape做动画
查看>>