Borodean
@Borodean

Как делать поиск и замену последовательностей элементов в массивах?

В большинстве языков программирования есть инструменты для поиска и замены последовательностей символов в строках. Но как делать то же самое, но с элементами в массивах?

Например, есть массив хэшей:
[
  { type: 1, content: "lorem" },
  { type: 2, content: "ipsum" },
  { type: 3, content: "dolor" },
  { type: 4, content: "sit" },
  { type: 2, content: "amet" },
  { type: 1, content: "consectetur" },
  { type: 2, content: "adipisicing" },
  { type: 3, content: "elit" },
]

Нужно все элементы, у которых последовательно идут типы от 1 до 3 объединить в один элемент с типом 1 со склеенным полем `content`:
[
  { type: 1, content: "loremipsumdolor" },
  { type: 4, content: "sit" },
  { type: 2, content: "amet" },
  { type: 1, content: "consecteturadipisicingelit" },
]

Кроме того, все последовательности из элемента с типом 4 и любым другим элементом должны быть заменены элементом с типом 5 и полем `content`, содержащим строку "woohoo":
[
  { type: 1, content: "loremipsumdolor" },
  { type: 5, content: "woohoo" },
  { type: 1, content: "consecteturadipisicingelit" },
]

Какие инструменты для решения подобных задач предлагают языки программирования? Как именно они используются? Если таких инструментов нет, то каков алгоритм?
  • Вопрос задан
  • 2230 просмотров
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg
Любые ответы на любые вопросы
Сначала алгоритм Ахо-Корасик для поиска нужных последовательностей. Потом выполнение действий.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы