Это домашнее задание, поэтому мне не нужен точный код, но я был бы признателен за любые идеи, которые могут помочь указать мне правильное направление.
Задача состоит в том, чтобы написать программу решения ошибок. У меня есть рекурсивная часть, которую я чувствую, но мне нужно некоторое представление о том, как сравнить текущую последовательность символов со словарем.
Мне нужно хранить словарь либо в наборе, либо в отсортированном списке. Я пытался реализовать это с помощью набора. Чтобы программа работала быстрее и не следовала тупиковым путям, мне нужно проверить и посмотреть, существует ли текущая последовательность символов в качестве префикса к чему-либо в наборе (словаре).
Я обнаружил, что операция set.find() возвращает true только в том случае, если строка является точным совпадением. В требованиях к лаборатории профессор упомянул, что:
«Если словарь хранится в наборе, многие библиотеки структур данных предоставляют способ найти строку в наборе, наиболее близкую к той, которую вы ищете. Такую операцию можно использовать для быстрого поиска слова с заданным префиксом. ."
Я искал сегодня то, что описывает профессор. Я нашел много информации о попытках, но поскольку мне нужно использовать список или набор, я не думаю, что это сработает.
Я также пытался найти алгоритмы для функций автозаполнения, но те, которые я нашел, кажутся чрезвычайно сложными для того, что я пытаюсь здесь сделать.
Я также думал об использовании strncmp() для сравнения текущей последовательности со словом из набора словарей, но опять же, я не знаю, как именно это будет работать в этой ситуации, если вообще будет.
Стоит ли продолжать исследовать, как это будет работать в наборе, или мне просто попробовать использовать отсортированный список для хранения моего словаря?
Спасибо