如何从两个字符串中,找出最大的公有串,例如:abacefoeftd和eyffaceffde中最大的公有串acef?

解决方案 »

  1.   

    动态规划
    http://algorithm.diy.myrice.com/problems/problem_set/LCS/solution.htm
      

  2.   

    string str1 = "asdfghjkl";
    string str2 = "fayke";
    string str3 = "";
    string strTemp = "";int i;
    for (i = 0; i < str1.Length; i++)
    {                
        if (str2.IndexOf(str1.Substring(i,1),0) >= 0)
        {
            strTemp = strTemp + str1.Substring(i,1);
        }
    }for (i = 0; i < str2.Length; i++)
    {
        if (strTemp.IndexOf(str2.Substring(i,1),0) >= 0)
        {
            str3 = str3 + str2.Substring(i,1);
        }
    }祝你成功!!!
      

  3.   

    上次的算法有点小错,改正后如下:string str1 = "asdfghjkl";
    string str2 = "fayke";
    string str3 = "";
    string strTemp = "";int i;
    for (i = 0; i < str1.Length; i++)
    {                
        if (str2.IndexOf(str1.Substring(i,1),0) >= 0)
        {
            if (strTemp.IndexOf(str1.Substring(i,1),0) < 0)
            {
                strTemp = strTemp + str1.Substring(i,1);
            }                    
        }
    }for (i = 0; i < str2.Length; i++)
    {
        if (strTemp.IndexOf(str2.Substring(i,1),0) >= 0)
        {
            str3 = str3 + str2.Substring(i,1);
        }
    }