黑马程序员技术交流社区

标题: 查询最大的公共子字符串(已解决) [打印本页]

作者: 张腾达    时间: 2012-7-28 20:37
标题: 查询最大的公共子字符串(已解决)
本帖最后由 张腾达 于 2012-7-30 09:12 编辑

有俩字符串“ahfjksdfhsa” “wrdssdfhijtg” 它们两个的最大公共子字符串是“sdfh”
试着写了写循环,最后还是没写出来,绕晕在里边了
求算法
作者: 蔡尚猛    时间: 2012-7-28 21:58
            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();
随手写的有点不规范,不过效果实现了,希望能给你帮助
作者: 张腾达    时间: 2012-7-30 09:12
蔡尚猛 发表于 2012-7-28 21:58
int s;
            string a = "ahfjksdfhsa";
            string b = "wrdssdfhijtg";

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

不过思路明白了 ,谢谢:P




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2