Есть два множества элементарных кодов, V и S (элементы V и S не обладают свойством префиксности).Есть строка p. Необходимо определить раскладывается ли строка p так, чтобы начало и конец были из множества S(либо начало, либо конец может быть пустым), а оставшаяся часть строки p раскладывалась на элементы множества V.Моя реализация в лоб: Для каждой пары из S, отсекаем от строки p соотв. начало и конец, получаем строку p1. Создаем массив флагов F длиной l равной + 1.Первый элемент F[0]=1; Остальные F[1]=0;..F[l]=0;Для i-ого шага, где i-номер элемента массива F в котором F[ i ]=1, ищем в V каждый префикс строки p от i-ого символа до последнего. Для найденных префиксов пометим соотв. элемент в массиве F, в котором заканчивается префикс, единицей. Если последний символ F[l]=1, значит данное сообщение декодируется кодом.Как именно декодируется не важно, важен сам факт возможности декодирования.Интересуют идеи, статьи на эту тему, которые могли бы улучшить данную реализацию.
|