A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张腾达 中级黑马   /  2012-7-28 20:37  /  1653 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张腾达 于 2012-7-30 09:12 编辑

有俩字符串“ahfjksdfhsa” “wrdssdfhijtg” 它们两个的最大公共子字符串是“sdfh”
试着写了写循环,最后还是没写出来,绕晕在里边了
求算法

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

2 个回复

倒序浏览
            int s;
            string a = "ahfjksdfhsa";
            string b = "wrdssdfhijtg";
            string max = "";
            string min = "";
            string z="";
            if (a.Length > b.Length)
            {
                s = b.Length;
                max = a;
                min = b;
            }
            else
            {
                s = a.Length;
                max = b;
                min = a;
            }
            for (int i = s; i >= 0;i-- )
            {
                for(int k=0;k<min.Length-i;k++)
                {
                    if (max.IndexOf(min.Substring(k, i)) >= 0)
                    {
                        z=min.Substring(k,i);
                        goto kxc;
                    }
                }
               
            }
            kxc:
            Console.WriteLine(z);
            Console.ReadKey();
随手写的有点不规范,不过效果实现了,希望能给你帮助

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
蔡尚猛 发表于 2012-7-28 21:58
int s;
            string a = "ahfjksdfhsa";
            string b = "wrdssdfhijtg";

string a="123456789";
string b="234567890";
运行结果是2345678  少了一个9

不过思路明白了 ,谢谢:P
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马