У меня возникли проблемы при построении алгоритма для следующей задачи: учитывая учебник (this one), найдите каждый первый и последний параграфы каждого раздела.Как я могу получить первый и последний параграфы каждого раздела документа?
Получение каждого абзаца в Haskell осуществляется легко, используя split
, или filter
, передавая параметр новой строки, и это отлично работает. Однако для меня все сложно (я знаю только ООП). Если мы возьмем заголовки в качестве базового случая, в тексте будут две строки заголовка: одна в части индекса и одна в самом тексте. Как программа может различать их? Кроме того, как код может знать, есть ли две две строки между двумя абзацами?
Это моя попытка решить проблему;
Получить каждый абзац в массив путем разбиения текста на элементы пункта
Поиск индекса названий в массиве и найти второе вхождение каждого заголовка и имя, что индекс
Получите параметр paragraph_array [index + 1] как первый элемент
Получите paragraph_array [index-1] как последний элемент предыдущего раздела.
Я очень смущен. Любая помощь будет очень оценена.
ОБНОВЛЕНИЕ: Раздел является чем-то вроде части каждого заголовка. Например, книга исчисления может содержать 12 глав, и каждая глава может содержать 8 разделов. Нам нужно подумать, что в этой книге есть только одна глава, и у нее 4-5 разделов. Название может быть INTEGRAL, LIMIT и т. Д.
'в тексте будет 2 строки заголовка'. В этом конкретном тексте строки заголовков в самом тексте всегда появляются сразу после строк новой строки. В индексе им предшествуют пробелы. – danidiaz
Что такое раздел? Похож на ключевую часть вопроса, и, вероятно, первое, что нужно разбить, но вы вряд ли даже упомянете об этом в своем вопросе. –
было бы более ясным, если бы вы поставили несколько небольших примеров среди вашего алгоритма, особенно абзацев, названий, разделов. –