`
jgsj
  • 浏览: 990312 次
文章分类
社区版块
存档分类
最新评论

在一个字符串中找一个最大重复子串

 
阅读更多

// find_sub_string.cpp : Defines the entry point for the console application.
//版权所有:吴建凰

#include "stdafx.h"
#include <iostream.h>

bool find_sub_string(const char * str,int str_length,int * offset,int * len){
int start=0;//每一次查询的开始处
int off=0;//查询到的偏移量
int maxlen=1;//查询到的最大长度
int inmaxlen=1;
int inlen=1;//每次循环查找到的最大长度
int i;//for循环的变量
for(;start+inmaxlen<str_length;start+=inmaxlen){//每次查找偏移量+上次查找到的最大长度<总长度 为循环条件
for(i=start+1,inmaxlen=1,inlen=0;i<str_length;i++){
if(str[start+inlen]==str[i]){
inlen++;
}
else{//当对应的字符不同时,判断新找到的是否更长
if(inlen>inmaxlen){//如果找到了一个新的更长的字符串
inmaxlen=inlen;
}
inlen =0;//inlen重新开始
}
}
if(inmaxlen>maxlen){
off=start;
maxlen=inmaxlen;
}
}
if(maxlen<2)//没有找到
return false;
//找到了
*offset=off;
*len=maxlen;
return true;
}

int main(int argc, char* argv[])
{
int offset,len;
if(find_sub_string("abcxyzbcxyzbx",13,&offset,&len)){
cout<<offset<<" "<<len<<endl;
}
return 0;
}

分享到:
评论

相关推荐

    寻找字符串中不包含重复字符的最长子串

    标题 "寻找字符串中不包含重复字符的最长子串" 指向的是一个经典的计算机科学问题,主要涉及字符串处理和算法设计。这个问题的目标是找出给定字符串中的最长子串,这个子串中的所有字符都不重复。这是一个在编程面试...

    在字符串中查找最长重复子串的探讨

    本篇文章主要探讨了如何在给定的字符串中找到最长的重复子串。例如,在字符串 "t1t1" 中,最长重复子串为 "t1";而在 "cabcabca" 中,最长重复子串可以是 "cab"、"abc" 或者 "bca"。 #### 技术实现思路 为了找到...

    C++实现找出两个字符串中最大的公共子串

    本主题将深入探讨如何使用C++语言来实现一个算法,该算法能够找出两个字符串中的最大公共子串。公共子串是指同时存在于两个或多个字符串中的任意非空字符序列。在本问题中,我们目标是找到最长的这样一个子串。 ...

    最大重复子字符串1

    最大重复子字符串问题是一个经典的字符串处理问题,主要考察的是对字符串操作的理解以及如何寻找子串的技巧。在给定的题目中,我们需要找到一个单词 `word` 在字符串 `sequence` 中连续重复出现的最大次数。 首先,...

    C语言求两个字符串的最长公共子串

    本文实例讲述了C语言求两个字符串的最长公共子串的方法。分享给大家供大家参考。具体实现方法如下: #include "stdio.h" #include "string.h" #include "stdlib.h" void getCommon(char str1[],char str2[],char * ...

    字符串相似度比较算法

    对于字符串,我们可以将每个字符串视为一个字符的集合,然后应用 Jaccard 指标来确定它们的相似性。 3. **Damerau-Levenshtein 距离**: Damerau-Levenshtein 距离扩展了 Levenshtein 距离,考虑了相邻字符的交换...

    java求字符串的正向反向最大公共字符串

    在Java编程中,求字符串的正向和反向最大公共字符串是一个常见的字符串处理问题。这个问题的核心在于找到一个字符串与其反转后的最长相同子序列。我们可以通过动态规划或者双指针等方法来解决这个问题。下面将详细...

    算法之《寻找最大重复子串》

    本篇文章将深入探讨一个有趣的算法问题——寻找最大重复子串。这个问题在字符串处理、文本分析、生物信息学等领域都有广泛的应用。 寻找最大重复子串的算法目标是从给定的字符串中找出最长的重复子串,即该子串在原...

    php-leetcode题解之最长不含重复字符的子字符串.zip

    标题中的“php-leetcode题解之最长不含重复字符的子字符串”表明这是一个关于使用PHP解决LeetCode算法问题的资源包,具体问题是寻找一个字符串中最长的不包含重复字符的子字符串。这个问题在计算机科学和编程领域是...

    字符串的最大公因子(substr+辗转相除)1

    题目要求寻找两个字符串 `str1` 和 `str2` 的最大公因子字符串,即找到一个字符串 X,使得 X 可以通过自身重复拼接形成 `str1` 和 `str2`。这个问题可以通过“辗转相除法”来解决,类似于求整数的最大公约数。 首先...

    字符串操作总结

    这些方法分别用于比较整个字符串或从指定位置开始的子字符串与另一个字符串的大小。 通过以上总结,我们可以看到 `string` 类提供了非常全面的字符串处理功能,使得在 C++ 中处理字符串变得既简单又高效。无论是...

    数据结构字符串的模式匹配

    这个主题主要涉及如何在主字符串(文本字符串)中高效地查找子字符串(模式字符串)。这里我们将深入探讨两种基本的字符串模式匹配算法:简单算法和KMP(Knuth-Morris-Pratt)算法。 首先,让我们理解一下简单的...

    字符串题目记录

    该题目要求找出最大边长重复出现子正方形,使用哈希函数 H(r,c) = H(r-1,c)*P + H(r, c-1)*P - H(r-1,c-1)*P*P + str(r,c),其中 P 是一个质数。该哈希函数可以用于快速计算子矩形的哈希值。 hashRectangle(int r1,...

    使用C语言提取子字符串及判断对称子字符串最大长度

    5. **对称子字符串最大长度**: - 对称子字符串是指一个字符串,其反转后的字符串与原字符串相同。例如,“aba”就是一个对称子字符串。要找出最长的对称子字符串,我们可以使用动态规划或者双指针的方法。对于每个...

    charnums.rar_字符串 c语言

    在实际编程中,需要注意边界条件,如处理空字符串和只有一个字符的字符串。 总的来说,这个题目涉及到了C语言中的字符串处理、循环、计数、条件判断等基础概念,是提高C语言编程能力的一个好练习。通过分析和理解...

    python字符串, 列表, 字典, 集合方法说明

    4. count(sub[, start[, end]]):返回子字符串sub在字符串中出现的次数,可指定开始和结束的位置。 5. encode(encoding='utf-8', errors='strict'):以指定的编码方式将字符串编码成字节序列。 6. endswith(suffix...

    JS查找字符串中出现最多的字符及个数统计

    同时,如果想计算一个子字符串在主字符串中出现的次数,可以使用自定义函数`countInstances`: ```javascript function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do { offset = ...

    js代码-(算法)(字符串)找最大不重复子串

    在JavaScript编程中,找最大不重复子串是一个常见的字符串处理问题,主要涉及到算法设计和字符串操作。这个问题的目标是找到一个字符串中的最长子串,这个子串中的字符都不重复。这在许多实际应用中都有用到,例如...

    汇编实现字符串排序

    总结来说,"汇编实现字符串排序"项目展示了如何在低级别语言中实现数据处理,通过理解和分析sort.asm代码,我们可以学习到汇编语言的控制流、内存操作以及字符串处理技巧。同时,这个项目也提供了一个实践和研究汇编...

Global site tag (gtag.js) - Google Analytics