`
zhu_jinlong
  • 浏览: 5256 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

两个字符串的最长公共子串

阅读更多
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char * longest(char * a,char *b)
{
int alen=strlen(a);
int blen=strlen(b);
int i,j,index,max=0,num=0;
int start;
for(i=0;i<alen;i++)
for(j=0;j<blen;j++)
{ int start1=i;
int start2=j;
while((start1<=alen-1) && (start2<=blen-1)&& (a[start1++]==b[start2++]) )
num++;
if(num>max)
{
max=num;
start=i;
}
num=0;
}
for(i=start;i<start+max;i++)
printf("%c",a[i]);
char *str=(char *)malloc(max+1);
//str[max]='/0';
strncpy(str,a+start,max);
}
int main()
{ char a[]="abcdabcdcbadffdaccccafg";
char b[]="gfaccccadffdabcdcbadcba";
longest(a,b);
system("pause");
return 0;


}
分享到:
评论

相关推荐

    JavaScript自定义函数实现查找两个字符串最长公共子串的方法

    本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= ,L1=s1.length,L2=s2....

    java实现求两个字符串最长公共子串的方法

    在编程领域,求解两个字符串的最长公共子串是一个经典问题,主要应用于文本处理、比较和搜索算法。这里我们将深入探讨如何使用Java实现这一方法,同时结合华为在线判题平台(OJ)的要求来编写代码。 首先,我们需要...

    PHP实现求两个字符串最长公共子串的方法示例

    在这个问题中,我们专注于PHP如何解决两个字符串的最长公共子串。 PHP作为一门广泛使用的服务器端脚本语言,提供了丰富的字符串和数组操作函数,这使得处理LCS问题变得相对容易。在给定的代码示例中,我们看到一种...

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

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

    用定长顺序存储结构表示串,求两个串的全部最长公共子串

    在本题目中,任务是使用定长顺序存储结构表示串,并找出两个字符串的最长公共子串。这是一个典型的字符串处理问题,通常在计算机科学和编程领域出现。以下是对这个任务的详细解析: 首先,我们需要理解“定长顺序...

    python实现求两个字符串的最长公共子串方法

    求两个字符串的最长公共子串 思想:建立一个二维数组,保存连续位相同与否的状态 ''' def getNumofCommonSubstr(str1, str2): lstr1 = len(str1) lstr2 = len(str2) record = [[0 for i in range(lstr2+1)] for j...

    在随意给出的2个字符串中,找出它们共同的最长的子串

    在随意给出的2个字符串中,找出它们共同的最长的子串。 【输入】 输入文件的第一行为一个整数2,接下来有2行,每行为一个字符串,每个字符串的长度均小于255。 【输出】 输出只有一行,即:共同的最长子串,若有多个...

    查找最长公共子串

    现在,我们要寻找两个字符串a和b中最长的公共子串。这个问题可以通过动态规划来解决。动态规划是一种利用已解决问题的解来构建更复杂问题的解的方法,它能有效地避免重复计算,提高效率。 动态规划解决方案通常涉及...

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

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

    求两个字符串的最长公共字串

    通过上述分析,我们可以看到,这段程序实现了对两个字符串的最长公共子串的有效计算。尽管其实现方式相对简单,但对于理解和学习动态规划的基本思想具有很好的参考价值。此外,在实际应用中,还可以考虑使用更高效的...

    最长公共子串MFC实现

    接下来,我们遍历两个字符串,如果当前字符相同,则dp[i][j] = dp[i-1][j-1] + 1,否则dp[i][j]取dp[i-1][j]和dp[i][j-1]中的较大值。最后,最长公共子串的长度就是dp数组的最大值,而子串本身可以通过回溯dp数组...

    找两字符串中最大子串

    - **目标**:找出这两个字符串的最长公共子串。 #### 2. 算法步骤 该算法的核心思想是通过双重循环遍历两个字符串,逐个字符进行比较,以找到最长的匹配子串。 - **初始化**:首先设置两个指针`flag1`和`flag2`,...

    新建 WinRAR 压缩文件_最长公共子串_

    在给定的压缩包文件中,我们可以看到它包含了用于开发和编译C++程序的相关文件,这表明我们将讨论如何用C++实现寻找两个字符串的最长公共子串的算法。 "最长公共子串"是指在两个或多个字符串中,长度最长的那个相同...

    C#最长公共子串(连续)算法(自创)

    - 定义一个二维数组`dp`,其大小为`str1.Length+1`乘以`str2.Length+1`,用来存储两个字符串在不同位置的子串长度。 - 初始化`dp`数组,第一行和第一列的值均为0,因为没有字符可比较。 - 遍历`str1`和`str2`,...

    java实现字符串匹配求两个字符串的最大公共子串

    最大公共子串是指在两个字符串中都出现的最长的连续子串。该算法的基本思想是通过构建一个二维布尔矩阵,其中矩阵的每个元素表示对应位置的字符是否相等。如果相等,则值为true,否则为false。然后,通过遍历这个...

    获取最长公共子串

    假设我们有两个字符串S1和S2,我们可以初始化一个m×n的二维数组dp,其中m和n分别是两个字符串的长度。dp[i][j]的值表示S1的前i个字符和S2的前j个字符的最长公共子串的长度。 算法步骤如下: 1. 初始化:将dp数组...

Global site tag (gtag.js) - Google Analytics