Исмаил качи първо решение на 03.01.2018 00:00 (преди над 7 години)
Добра работа. Не съм сигурен доколко удобно е индексирането на текст, понеже &str
-тата, които се запазват, трябва да се own-ват от неща извън TextIndex
. Това значи, че например, ако четеш низове от файлове, трябва да си ги държиш някъде, докато е жив TextIndex
, иначе ще получиш компилационна грешка.
Но предполагам, че не съм успял да измисля достатъчно стриктни тестове, за които това да е проблем, а и не съм го описал в условието. Предвид, че решението е ефективно, дори и да е малко по-трудно за практическа употреба, ще ти дам обещаната бонус точка за него.
Аз имам въпрос по условието:
let mut index = TextIndex::new();
index.push("foo");
index.search("oo"); // HashSet{} или HashSet{"foo"}
Хм, не съм го видял навреме, изглежда. Но си уцелил правилния отговор :). Търсенето е по цели думи, не по части от тях. Тоест, HashSet{}
е отговора. Имах доброто намерение да искам по-добър алгоритъм за търсене, но реших, че много ще се усложнят нещата.