求一个字符串当中的最长重复子串
2014-04-11 16:14
357 查看
#include<stdio.h> #include<string.h> /* 最长重复子串 Longest Repeat Substring */ int maxlen; /* 记录最长重复子串长度 */ int maxindex; /* 记录最长重复子串的起始位置 */ /* 最长重复子串 基本算法 */ int judge(char * p, char * q) { int len = 0; while(*p && *q && *p++ == *q++) { ++len; } return len; } void getStr(char * arr, int size) { for(int i = 0; i < size; ++i) { for(int j = i+1; j < size; ++j) { //传送地址给指针 int len = judge(&arr[i],&arr[j]); if(len > maxlen) { maxlen = len; maxindex = i; } } } } int main() { char str[] = "abcabc"; getStr(str,strlen(str)); printf("%d,%d\n",maxlen,maxindex); for(int i=maxindex;i<maxlen;i++) { putchar(str[i]); } }
这里有更加优秀的解法,
不过这个解法似乎足够了
http://dsqiu.iteye.com/blog/1701324
相关文章推荐
- 寻找一个字符串中的最长重复子串
- 给定一个字符串,求出其最长的重复子串
- 给定一个字符串,求出其最长的重复子串。
- 给定一个字符串,求出其最长的重复子串的长度
- 给定一个字符串,输出最长的重复子串
- 给定一个字符串,求出其最长的重复子串。
- 【每天学点算法题10.17】寻找一个字符串中的最长重复子串
- 【字符串问题】求一个字符串中重复出现的最长的子串
- 寻找一个字符串中最长的重复子串
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- Python简单实现查找一个字符串中最长不重复子串的方法
- 求一个字符串的最长重复子串
- 每日面试题:给定一个字符串,求出其最长的重复子串
- 找出一个字符串中出现的重复的最长的字符子串
- 用三重循环求一个字符串的最大回文串(连续重复出现的最长子串)
- 求给定的某一个字符串中的最长的没有重复字符的子串的长度
- 面试题35:寻找一个字符串中最长的重复子串
- 求一个字符串中最长的非重复连续子串
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- 自己写的一个后缀树算法查找一个字符串的最长重复子串