Esempio n. 1
0
        private void btnFind_Click(object sender, EventArgs e)
        {
            CountStr3 A = new CountStr3();

            A.Str1 = txtStr1.Text;
            A.Str2 = txtStr2.Text;
            string result = string.Empty;

            txtCount.Text = A.Str3Count(A, ref result).ToString();
            txtStr3.Text  = result;
        }
Esempio n. 2
0
        public int Str3Count(CountStr3 A, ref string str)
        {
            int n = Str1.Length + 2; // количество строк
            int m = Str2.Length + 2; // количество столбцов

            char[,] mass = new char [n, m];
            int a = 2; // начинаем с 2 строки, так как 0 нам не интересны (позиция старта)
            int b = 2; // начинаем с 2 строки, так как 0 нам не интересны (позиция старта)

            //Заполняем 1 столбец
            for (int j = 0; j < Str2.Length; j++)
            {
                mass[0, a] = Str2[j];
                a++;
            }

            // заполняем 1 строку
            for (int i = 0; i < Str1.Length; i++)
            {
                mass[b, 0] = Str1[i];
                b++;
            }
            // возвращаем исходные значения а и b для прогонки по массиву
            a = 2;
            b = 2;
            for (int i = b; i < n; i++)
            {
                for (int j = a; j < m; j++)
                {
                    if (mass[0, j] == mass[i, 0] && mass[0, j] != 0 && mass[i, 0] != 0)
                    {
                        str += mass[0, j].ToString();
                        count++; // увеличиваем количество элементов подпоследовательности

                        /* если находим одинаковые элементы,
                         * дальше нет смысла смотреть
                         * переходим на другую строку и столбец*/
                        b++;
                        a++;
                        break;
                    }
                }
            }
            return(count);
        }