Замечание : я знаю, что есть много похожих вопросов по SO, но нет специфических для языка C, поэтому я и задаю этот вопрос.
Вот проблема, которую я задаюлицом : мне будет предоставлен большой текст (например, 150 000 слов), а после этого серия фраз (каждая фраза содержит от 1 до 10 слов).Для каждой из этих фраз мне нужно найти слово, которое следует сразу за фразой в тексте, и вернуть ее.
Моя единственная идея до сих пор решить ее : создать структуру, которая содержит:
- текущее слово
- 3 слова, предшествовавшие этому слову
- слово, которое следует за
Тогда я бы проанализировал текстсоздание одной структуры для каждого слова и сохранение всех этих структур в хеш-таблице.По мере появления каждой фразы я буду искать в хэш-таблице последнее слово этой фразы, проверять, совпадают ли предыдущие 3 слова, а затем возвращать следующее слово.Я верю, что возврата к 3 словам будет достаточно для однозначного определения фраз, но я мог бы увеличить это число.
Как вы думаете, это сработает?Вы знаете лучший способ?