Example #1
0
        static void Main(string[] args)                            //程序从main函数开始运行
        {
            int[]    L1  = { 34, 72, 13, 44, 25, 30, 10 };         //自定义的数组
            int[]    L2  = { 34, 13, 44, 7, 25 };
            string[] P   = { "我", "的", "名字", "是", "刘", "一", "达" }; //自定义的对象
            string[] Q   = { "刘", "一达", "是", "个", "好", "名字" };
            LCS      lcs = new LCS();                              //实例化一个lcs对象

            lcs.LCS_LENGTH(L1, L2);                                //整形情况
            for (int i = 0; i < L1.Length; i++)                    //遍历这个矩阵依次打印回溯左上角的元素
            {
                for (int j = 0; j < L2.Length; j++)
                {
                    if (lcs.b[i, j] == "left_up")
                    {
                        Console.WriteLine("{0}", L1[i]);
                    }
                }
            }
            lcs.LCS_LENGTH1(P, Q);    //字符串情况
            for (int i = 0; i < P.Length; i++)
            {
                for (int j = 0; j < Q.Length; j++)
                {
                    if (lcs.b[i, j] == "left_up")
                    {
                        Console.WriteLine("{0}", P[i]);
                    }
                }
            }
            Console.ReadLine();
        }
Example #2
0
        // public void symbol(char a)
        //  {
        //    LCS.LCS_LENGTH(X,Y);
        // }
        static void Main(string[] args)                                  //程序从main函数开始运行
        {
            int[]    L1  = { 14, 56, 13, 44, 25, 30, 10, 7 };            //自定义的数组
            int[]    L2  = { 14, 13, 44, 7, 25 };
            string[] M   = { "我", "不是", "名", "一个", "侦", "探", "柯", "南" }; //自定义的对象
            string[] N   = { "名", "侦", "探", "柯", "南", "小胖" };
            LCS      lcs = new LCS();                                    //实例化一个lcs对象

            lcs.LCS_LENGTH(L1, L2);                                      //运用lcs类中的方法
            for (int i = 0; i < L1.Length; i++)                          //遍历这个矩阵依次打印回溯左上角的元素
            {
                for (int j = 0; j < L2.Length; j++)
                {
                    // lcs.LCSW(lcs.a,lcs.b, L1, i, j);
                    //   Console.WriteLine("{0}", L1[i]);
                    if (lcs.b[i, j] == "left_up")
                    {
                        Console.WriteLine("{0}", L1[i]);
                    }
                    //    else if (lcs.b[i, j] == "up")
                    //       Console.WriteLine("{0}", L1[i]);
                    //  else
                    //     Console.WriteLine("{0}", L1[i]);
                }
            }
            lcs.LCS_LENGTH1(M, N);    //同理
            for (int i = 0; i < M.Length; i++)
            {
                for (int j = 0; j < N.Length; j++)
                {
                    //lcs.LCSP(lcs.b, list1, i, j);
                    if (lcs.b[i, j] == "left_up")
                    {
                        Console.WriteLine("{0}", M[i]);
                    }
                }
            }
            Console.ReadLine();
        }