Найти большую общую подстроку в 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;
}