Задачка, которая иногда встречается при обработке массивов. Нужно
определить входит ли одна последовательность в другую. Похоже на
определение вложенности множеств, но в данном случае порядок элементов
в последовательности имеет значение.
// Artix, 2011-01-13
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int X=20;
const int Y=3;
int seq1[X];
int seq2[Y];
int main()
{
srand(time(NULL));
// Sequence 1
for(int i=0;i<X;i++)
{
seq1[i] = rand() % 10;
printf("%d ",seq1[i]);
}
printf("\n");
// Sequence 2
for(int i=0; i<Y; i++)
{
seq2[i] = rand() % 10;
printf("%d ",seq2[i]);
}
printf("\n");
// Search seq2 in seq1
int x=X, y=Y;
while(x>0 && y>0)
{
if (seq1[x-1]==seq2[y-1])
{
x--; y--;
}
else
{
x--;
}
}
int result = (y==0);
printf("Result: %s\n",result?"YES":"NO");
return 1;
}
Справочник алгоритмов v0.05 © 2007-2025 Igor Salnikov aka SunDoctor