Найти большую общую подстроку в 2 массивах - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать программу на языке С, которая ищет длиннейшее вхождение в 2-х массивах, массивы могут быть разной длинны ПРИМЕР: MAS1: 3 9 -2 1 0 4 MAS2: 5 8 -2 1 0 5 ОТВЕТ: -2 1 0

Решение задачи: «Найти большую общую подстроку в 2 массивах»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main()
{
    char A[] = "df45rt763lioasd45tcvxtyujhgf";
    char B[] = "45rhgjlioasd45trew9835263";
    int i = 0, j, m, n, x = 0, max = 0, index = 0;
    for(i = 0; i < strlen(A); ++i){
        for(j = 0; j < strlen(B); ++j)
            if(B[j] == A[i]){
                m = j;
                n = i;
                x = 0;
                while(B[m] == A[n]){
                    ++x;
                    if(x > max){
                        max = x;
                        index = m;
                    }
                    ++m;
                    ++n;
                }
            }
        }
    for(j = index - max + 1; j <= index; ++j)
        printf("%c", B[j]);
    return 0;
}

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы