| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2376 人关注过本帖
标题:请帮忙///如何计算两个 字符串的最长公共子串?
只看楼主 加入收藏
chenxihaoyun
Rank: 2
等 级:论坛游民
帖 子:19
专家分:20
注 册:2010-12-7
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
请帮忙///如何计算两个 字符串的最长公共子串?
如何计算两个 字符串的最长公共子串?
搜索更多相关主题的帖子: 字符 
2010-12-13 21:11
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:7 
唉,如果你的代码有错,你又找不到,你可以发上来让我们大家一起来找错,但是请不要再发这种帖,让别人为你写代码,这样你下次可能还不会.所以还是要自己动手写.

经验积累中............
2010-12-13 21:14
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:7 
这个需要用到动态规划的算法,这是程序:(这个程序不是我写的呀,是我同学写的呀!嘻嘻)

# include <stdio.h>
# include<string.h>
# include <stdlib.h>

#define M 100

char* LCS(char left[] , char right[])
{
    int lenLeft = strlen(left) , lenRight = strlen(right) ;
    char *c = malloc(lenRight) , *p ;
    int start , end , len , i , j ;
    end = len = 0;
    for(i = 0 ; i < lenLeft ; i++)
        for(j = lenRight - 1 ; j >= 0 ; j--)
        {
            if(left[i] == right[j])
            {
                if(i == 0 || j == 0)
                    c[j] = 1;
                else
                    c[j] = c[j-1] + 1 ;
            }
            else
                c[j] = 0;
            if(c[j] > len)
            {
                len = c[j] ;
                end = j ;
            }
        }
     start = end - len + 1 ;
     p = (char*)malloc(len + 1) ;
     for(i = start ; i<= end ; i++)
        p[i-start] = right[i] ;
        p[len] = '\0' ;
     return p;
}

int main()
{
    char str1[M] , str2[M] ;
    printf("请输入字符串1:") ;
    gets(str1) ;
    printf("请输入字符串2:") ;
    gets(str2) ;
    printf("最长子串为:") ;
    printf("%s\n",LCS(str1,str2)) ;
    return 0 ;
}



愿用余生致力编程
2010-12-13 21:15
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:7 
楼上的代码看了不知道几遍了

                                         
===========深入<----------------->浅出============
2010-12-13 21:34
快速回复:请帮忙///如何计算两个 字符串的最长公共子串?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023024 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved